0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure WAFの「JSチャレンジ」と「CAPTCHAチャレンジ」の違いについて

Last updated at Posted at 2025-07-06

「JSチャレンジ」と「CAPTCHAチャレンジ」の違いについてわかりやすく説明します。また実機検証の例をもつきました。


JSチャレンジとCAPTCHAチャレンジの違い

項目 JSチャレンジ CAPTCHAチャレンジ
目的 クライアントのブラウザが実正規のブラウザかどうかを確認 ユーザーが人間(ヒト)か自動化されたボットかを判定
仕組み ブラウザにJavaScriptコードを送信し、その実行を検証 ユーザーに画像認証やテキスト入力を求めるUIを出す
対象者 自動化ボットや攻撃ツールを検出 実際のWebユーザー(人間)を識別
動作の流れ JavaScript実行可能チェック → 正常ならアクセス許可 CAPTCHA画像やクイズに回答させて判定
ユーザビリティ 影響は少なく、ほとんど気付かない場合も多い ユーザーの手間や時間を要し、負担がかかることもある
JavaScriptの実行を誘導し、その確認結果に基づき制御 picture CAPTCHA、reCAPTCHA v2/v3など

具体的な違いのポイント

  • JSチャレンジは、ブラウザ内部でJavaScriptを実行させて、その結果をもとにアクセスを制御します。
    例として、「ブラウザがJavaScriptをサポートしているか」「特定のJavaScriptの動作が正常に行われるか」を確認します。
    これにより、単純なボットや自動化スクリプトを排除できます。

  • CAPTCHAチャレンジは、ユーザーに対して画像や文字の認証を行わせるもので、「ユーザーが人間かどうか」を最終的に判定します。
    ユーザビリティ的には負担がありますが、最も確実に「人間判定」を行える方法です。


実機検証:

  • JSチャレンジのカスタムルールを設定して検証しました。
    image.png

以下のように自動確認していますね。すぐページのほうにたどり着きました。
image.png

  • HIPチャレンジのカスタムルールを設定して検証しました。(なんで名前はCAPTCHAチャレンジではなく、HIPチャレンジなのか謎ですが、一応HIPチャレンジで合っています).以下のように「自分はBotではないよ」と手動で確認する必要となります。
    image.png

image.png
image.png

補足:実機検証では、チャレンジにPASSした後、マネージドルールは適用されることが確認できました。
image.png
image.png

まとめ

  • JSチャレンジは、「ブラウザがJavaScriptを正しく動作させるかどうか」を確認する軽めの検証です。
    ユーザに追加負担をかけずに自動化ボットを排除できます。

  • CAPTCHAチャレンジは、「人間かロボットか」を厳密に判定するための検証で、ユーザには認証作業を求めます。


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?