logo
bars

Yidun (NECaptcha)
と CapMonster Cloud

キャプチャの解決、サイトへの設置、テスト。
キャプチャや防御機構が導入済みのサイトを引き継いだのに、ソースコードへアクセスできない? その場合、どの仕組みが入っているのか、設定は正しいのか、どう検証するのかが気になります。

この記事では、よくある疑問にできるだけお答えしました。まず最初のステップは、どのような保護システムが使われているかを特定することです。そのために、代表的なキャプチャやボット対策システムの一覧を参照できます。ここには、どの仕組みが使われているかを素早く見分けるための画面イメージや主な特徴がまとめられています。

もしサイトで Yidun (NECaptcha) が使われていることが分かったら、次のステップはその特徴と動作をより詳しく確認することです。同じこの記事の中で、Yidun (NECaptcha) をサイトに導入するための手順書も確認できるので、あなたのサイト上でどのように機能しているのかをしっかり理解できます。これにより、現在の保護を正しく把握できるだけでなく、今後の運用や保守も計画的に行えるようになります。

Yidun CAPTCHAとは
Yidun CAPTCHAとは
YidunはNetEaseによって開発された最新のアンチボットシステムです。ユーザーの行動を分析し、訪問者にタスクを実行させる必要はありません。マウスの動き、ジェスチャー、操作速度、ネットワークコンテキストなどの「行動指標」を監視し、機械学習(ML)で人間かボットかを判定します。
Background
Yidun (NECaptcha) の例
Smart Captcha
Smart Captcha
信頼できるユーザーを自動認識するスマートなアンチボットシステム。
Slide Captcha
Slide Captcha
スライダーを動かしてパズルを完成させる人気のビジュアルキャプチャ。
Icon Click Captcha
Icon Click Captcha
ユーザーが指定された順序でアイコンや画像の要素をクリックする必要があります。

CapMonster CloudでYidunを解決する方法

Yidun付きのフォームをテストする際、キャプチャが正しく機能し、正しく統合されていることを確認する必要があります。
ウェブサイト上のキャプチャを手動でテストできます:
  • フォームページを開き、キャプチャが表示されていることを確認します。
  • キャプチャを解決せずにフォームを送信してみてください — サーバーはエラーを返すはずです。
  • キャプチャを正常に解決した後 — フォームはエラーなく送信されるはずです。
自動でキャプチャを解決する場合CapMonster Cloudのような専門サービスを使用できます。サービスはキャプチャパラメータを受け取り、サーバーで処理し、完成済みのトークンを返します。このトークンをフォームに挿入して、ユーザー操作なしで検証を通過できます。

CapMonster Cloud API を使った一般的な手順:

タスクの作成タスクの作成
arrow
API リクエストの送信API リクエストの送信
arrow
結果の受信結果の受信
arrow
トークンをページへ適用トークンをページへ適用
arrow
既存ライブラリでYidun CAPTCHAを解決する
CapMonster Cloudは、PythonJavaScript(Node.js)、C#用のライブラリを提供しています。
Python
JavaScript
C#
解決、トークン挿入、フォーム送信
Node.jsの例:ページ上のキャプチャ解決からトークン取得、フォームへの挿入、送信までの全工程。HTTPリクエストを使う方法や、Playwrightなどの自動化ツールでページを開き、検証待機、CapMonster Cloud経由でパラメータ送信、結果取得、トークンをフォームにセットして結果確認が可能です。

// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium
import { chromium } from "playwright";
import { CapMonsterCloudClientFactory, ClientOptions, YidunRequest } from "@zennolab_com/capmonstercloud-client";

(async () => {
  //  設定
  const TARGET_URL = "https://example.com/";
  const WEBSITE_KEY = "6cw0f0485d5d46auacf9b735d20218a5";   // YidunのsiteKey
  const CMC_API_KEY = "YOUR_API_KEY"; // CapMonster CloudのAPIキー

  // 1) ブラウザを起動
  const browser = await chromium.launch({ headless: false });
  const page = await browser.newPage();
  await page.goto(TARGET_URL, { waitUntil: "domcontentloaded" });

  const cmc = CapMonsterCloudClientFactory.Create(
    new ClientOptions({ clientKey: CMC_API_KEY })
  );

  // 2) Yidunキャプチャ解決リクエスト送信
  const solution = await cmc.Solve(
    new YidunRequest({
      websiteURL: TARGET_URL,
      websiteKey: WEBSITE_KEY,
      userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36"
    })
  );

  const token = solution.solution.token; // Yidunトークン取得
  console.log("Yidun token:", token);

  // 3) トークンをhiddenフィールドに挿入してフォーム送信
  await page.evaluate((t) => {
    // トークン用のhidden inputを探す(自分の値に置換)
    const input = document.querySelector('input[name="NECaptchaValidate"]');
    if (input) input.value = t;

    // ページにフォームがあれば送信
    const form = document.querySelector("form");
    if (form) form.submit();
  }, token);

  console.log("Yidunキャプチャ解決完了、トークン挿入、フォーム送信済み!");
})();

  
自サイトにYidun (NECaptcha)を接続する方法
サイト上のキャプチャの動作や検証ロジックを理解し、再接続や再設定を行うには、このセクションを確認してください。接続手順を詳しく説明しています。

1. パネルにアクセスし、電話またはメールでアカウントを作成。

2. パネルで次を選択:产品与服务 → 验证码服务 (Captcha Service)

3. 新しいプロジェクト(应用)を作成。

4. 結果として以下が取得できます:

  • captchaId
  • secretKey

5. Yidunフロントエンド接続例


<!-- YiDunスクリプトを接続 -->
<script src="https://cstaticdun.126.net/load.min.js"></script>

<!-- キャプチャ用コンテナ -->
<div id="captcha"></div>

<script>
// キャプチャ初期化
initNECaptcha({
    captchaId: "YOUR_CAPTCHA_ID", // パネルのcaptchaId
    element: "#captcha",          // ウィジェットを挿入する場所

    // 成功後に呼ばれる
    onVerify: (err, data) => {
        if (!err) {
            // data.validate -- キャプチャトークン
            // hiddenフィールドに保存
            document.querySelector("#validate").value = data.validate;
        }
    }
});
</script>

<!-- サーバーにvalidateを送信するフォーム -->
<form method="POST" action="/verify">
    <!-- ここにトークンが記録される -->
    <input type="hidden" id="validate" name="NECaptchaValidate">

    <button>Submit</button>
</form>


6. サーバー側Yidun検証(PHP例)


<?php

// パネルからのデータ
$CAPTCHA_ID = "YOUR_CAPTCHA_ID";
$SECRET_ID  = "YOUR_SECRET_ID";

// フロントエンドからトークンを取得
$validate = $_POST["NECaptchaValidate"] ?? null;

// トークンがない場合 — エラー
if (!$validate) {
    echo "Captcha not passed";
    exit;
}

// POSTリクエストを準備
$url = "https://c.dun.163yun.com/api/v2/verify";

$postData = http_build_query([
    "captchaId" => $CAPTCHA_ID,
    "secretId"  => $SECRET_ID,
    "validate"  => $validate
]);

// Yidunへリクエスト送信
$opts = [
    "http" => [
        "method"  => "POST",
        "header"  => "Content-Type: application/x-www-form-urlencoded",
        "content" => $postData
    ]
];

$context  = stream_context_create($opts);
$result   = file_get_contents($url, false, $context);

// JSONをデコード
$data = json_decode($result, true);

// 結果を確認
if ($data["result"] === true) {
    echo "Captcha passed successfully";
} else {
    echo "Verification error: " . json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
}
Background
想定されるエラーとデバッグ
Bug Icon
パラメータが正しくない
captchaIdやbusinessIdが間違っている、load.min.jsが未接続、Yidunリソースへのアクセスがブロックされている場合、キャプチャは表示されません。https://cstaticdun.126.net/load.min.jsやcaptchaId、businessIdを確認してください。
Bug Icon
タイムアウトまたは初期化エラー
初期化に失敗するとSDKは1004または-1を返します。タイムアウトを延長し、ネットワークを確認、ログを有効にしてください。
Bug Icon
validateトークンが空または不正
validate = null またはサーバーでresult: falseの場合、キャプチャが完了しているか、トークンが期限切れでないか、再利用されていないか、captchaId/secretIdが一致しているか確認。
Bug Icon
署名エラー(signature)
パラメータが正しくソートされていない、またはキーが間違っていると署名エラーが発生します。パラメータをキー順にソートし、正しい秘密鍵とHMAC-SHAを使用してください。
Bug Icon
検証時のネットワークエラー
Timeout、DNS、SSL、または不正なリクエスト。https://c.dun.163yun.com/api/v2/verifyにリクエスト、Content-Type: application/x-www-form-urlencoded、レスポンスをログに記録。
保護の堅牢性チェック
セキュリティと最適化のヒント
validateトークンは必ずサーバー側で確認。
秘密鍵は安全に保存。
追加フィールド(userIP、sceneなど)を確認してリクエストの正当性を確認。
すべてのAPIリクエストはHTTPSで。
エラー処理とユーザー向けの明確なメッセージを実装。
captchaIdの使用をドメインごとに制限。
まとめ

すでにキャプチャや別の保護システムが導入されているサイトを引き継いだものの、コードにはアクセスできない場合でも心配はいりません!どの技術が使われているかを特定するのはそれほど難しくありません。動作が正しいか確認するには、隔離されたテスト環境で認識サービスCapMonster Cloudを利用し、トークン処理の仕組みと検証ロジックが正しく機能しているかをチェックできます。

Yidun (NECaptcha)の場合も、システムを特定し、その挙動を調べて、保護機能が正しく動いていることを確認すれば十分です。この記事では、Yidun (NECaptcha)を見分ける方法と、その導入や再設定に関する手順書の見つけ方を紹介しました。これにより、防御を安心して維持し、その動作をしっかりと管理できます。

Conclusion
参考リンク
DocIconNetEase Yidun登録DocIconYidunドキュメントDocIconCapMonster Cloudドキュメント(Yidun)