キャプチャで一般的に発生するのは、単一の単語が表示され、ユーザーはその単語を入力してキャプチャを検証する必要があるということです。しかし、この場合、私が望むのは、キャプチャがスローガン(つまり文)で構成され、コンピューターが次のように尋ねるたびに... スローガンの最初の単語を入力してください..次に尋ねられるときは、Enter 3番目の単語などはランダムに... 誰かがこれをどのようにtdするかを教えてくれますか?
質問する
1043 次
1 に答える
0
過去に Classic ASP で CAPTCHA を作成した方法を次に示します。フォームがユーザーに表示されると、乱数と質問と回答が生成されます。
乱数は、質問への回答を格納するセッション変数の名前として使用されます。また、乱数の値を含む隠しフィールドを追加します。この乱数により、1 人のユーザーが同じセッション変数を使用せずに複数のフォームを異なるウィンドウ/タブに表示できます。また、ページをハッキングしようとする人は、投稿する前にページを取得する必要があるため、ハッキングが少し難しくなります.
ユーザーがフォームを送信すると、隠しフィールドの値が取得され、セッション変数に格納された回答が取得されます。セッション変数は削除されるため、「ボットが回答を推測する際に複数回試行することはできません。次に、ユーザーの回答を、ユーザーが入力した内容と比較できます。正しくない場合は、フォームが再度表示され、新しい乱数と回答が生成されます。
フォーム生成時のコードは次のようになります。
'get your question and answer
strQuestion = "My question"
strAnswer = "answer"
Randomize
strVarName = Int((999999 - 100000 + 1) * Rnd() + 100000)
Session(strVarName) = strAnswer
<input type="hidden" name="varname" value="<%= strVarName %>" />
フォーム送信時のコードは次のようになります。
strVarName = Request.Form("varname")
strUserAnswer = Request.Form("answer")
strRealAnswer = Session(strVarName)
Session.Items.Remove(strVarName)
If strUserAnswer <> strRealAnswer Then
'invalid response
'show form again with new answer and session
End If
于 2012-10-26T03:20:21.820 に答える