私は、ユーザーが彼が人間であり、スクリプトがないことを証明できるスライダを使用して、登録用にキャプチャを使いやすくしたいと考えています。jQuery UI Sliderを使って安全なcaptchaを構築するには?
これまでのところ、jQuery UIスライダでスライダを実装しました。値が100の場合、送信ボタンが表示されます。良い見え、私はその動作に満足しています。
しかし、JSはクライアントによって実行されるので、誰もが自分のコードを見ることができ、スクリプトを使用して同じアクションをトリガすることができます。スクリプトの場合、ボタンが使用可能かどうかに違いはありません。スクリプトはフォームを提出するためのデータを投稿するだけで、スライダのキャプチャは無用です。
私の簡単なJS-コード:$(function() {
$("#slider").slider({
value:0,
min: 0,
max: 100,
step: 50,
slide: function(event, ui) {
if(ui.value == 100){
$("#amount").val("human");
$("#regButton").slideDown();
} else if (ui.value == 50) {
$("#amount").val("nerd");
$("#regButton").slideUp();
} else {
$("#amount").val("script");
$("#regButton").slideUp();
}
}
});
$("#regButton").hide();
$("#amount").val("Script");
});
HTML:
<label for="amount" style="text-align:right;">I'm a:</label>
<input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold; width: 197px;" />
<div id="slider"></div>
がキャプチャセーバーを構築する可能性がありますか?サーバサイドのハッシュを使用していますか?フラグを設定する?手紙を入力するよりも、派手なUIとユーザーエクスペリエンスでセキュリティをアーカイブする方法は何でしょうか。
私はサーバー側でSpring MVCを使用してJava EEを使用しています。 reCaptchaの代わりにスライダーを使うのはいいですか?
EDIT:スライダーロジックにハッシュ値を追加しました。サーバーが、登録が開始された日付の隠しフィールドをレンダリングするとき、サーバーはこの日付に基づいてmd5ハッシュを作成します。隠されたフィールドの値を読み込み、md5-hashを構築する関数がスライダを移動したかどうかが呼び出されました。ハッシュ値は、サーバーに送信され、ハッシュのサーバー値と比較して登録を送信する前に送信されます。テキストキャプチャだけでなく、何もしないより効果的です。
私はこれが見つかりました:あなたの事を何https://code.google.com/p/slidelock/
を?この男はどのようにして「安全な」スライダを構築していますか?サーバサイド検証とSALTの管理方法それを安全にするか、それともスクリプタがそれを壊すだけの費用がかかりますか?
パークドドメインにリンク – Neberu
ありがとう、私は新しいものを追加しました。 – Nils