[解決済み】非画像ベースのCAPTCHAの実用的なアプローチ?
質問
を追加することになるようです。 CAPTCHA をサポートします。これは、ボット、スパマー、その他の悪意のあるスクリプトによる活動を防ぐために必要なことです。私たちは、人間だけがここに投稿したり編集したりすることを望んでいます。
第一の防御としてJavaScript(jQuery)CAPTCHAを使用する予定です。
http://docs.jquery.com/Tutorials:Safer_Contact_Forms_Without_CAPTCHAs
この方法の利点は、次のとおりです。 ほとんどの人は、CAPTCHAが表示されることはありません。
しかし、JavaScriptを無効にしている人のために、フォールバックが必要で、ここが厄介なところです。
を書きました。 ASP.NET 用の従来の CAPTCHA コントロールです。 を再利用することができます。
しかし、リクエストのたびにサーバーでこれらの画像をすべて作成するオーバーヘッドを避けるために、何かテキスト的なものにするのが望ましいと思います。
みたいなのを見たことがあります。
-
ASCIIテキストキャプチャ
\/\/(_)\/\/
- 算数パズル:7マイナス3×2は何でしょう?
- 豆知識:ヒキガエルとアイスキャンディー、どちらがおいしい?
私は風車にぶら下がっているだけなのかもしれませんが、より少ないリソースで、画像ベースではない
<noscript>
可能であれば互換性のあるCAPTCHAを。
アイデアは?
解決方法は?
私が開発した方法 これは完璧に機能するようで、(おそらくあなたほどコメントスパムを受けないと思いますが)隠しフィールドを用意して、そこに例えば偽の値を記入するのです。
<input type="hidden" name="antispam" value="lalalala" />
そして、ページが読み込まれた秒数で1秒ごとに値を更新するJavaScriptの一部を用意しました。
var antiSpam = function() {
if (document.getElementById("antiSpam")) {
a = document.getElementById("antiSpam");
if (isNaN(a.value) == true) {
a.value = 0;
} else {
a.value = parseInt(a.value) + 1;
}
}
setTimeout("antiSpam()", 1000);
}
antiSpam();
そしてフォームが送信されたとき、アンチスパムの値がまだ "lalalala" ならば、それをスパムとしてマークするのです。アンチスパムの値が整数である場合、それが10(秒)以上であるかどうかをチェックします。10以下ならスパムとしてマークし、10以上ならスルーします。
If AntiSpam = A Integer
If AntiSpam >= 10
Comment = Approved
Else
Comment = Spam
Else
Comment = Spam
という説がある。
- スパムボットはJavaScriptをサポートしておらず、見たままを送信します。
- ボットがJavaScriptをサポートしている場合、即座にフォームを送信します。
- コメント投稿者は、投稿前に少なくともページの一部を読んでいます。
この方法の欠点は、JavaScriptが必要なことです。JavaScriptを有効にしていない場合、コメントはスパムと判定されますが、私はスパムと判定されたコメントを確認するので、この点は問題ではありません。
コメントへの返信
@MrAnalogyです。サーバーサイドのアプローチはなかなか良さそうで、JavaScriptでやるのと全く同じですね。グッド・コールです。
AviD: この方法は、私が 私のブログ . しかし、この方法は、あらゆるフォームにゴミを送信する平均的なスパムボットを防御することができます。
関連
-
[解決済み] .pfxを.cerに変換する
-
[解決済み] クレジットカードの番号からカードの種類を判別する方法は?
-
[解決済み】XKCDコミック「Bobby Tables」のSQLインジェクションはどのように動作するのでしょうか?
-
[解決済み】OAuth v2には、なぜアクセス・トークンとリフレッシュ・トークンの両方があるのでしょうか?
-
[解決済み】非画像ベースのCAPTCHAの実用的なアプローチ?
-
[解決済み】塩の文字列はどこに保存していますか?
-
[解決済み】背景色からフォントカラーを決定する方法
-
[解決済み】C#アプリケーションでSecureStringが実用化されることはありますか?
-
[解決済み】JWTリフレッシュトークンフロー
-
[解決済み】Webブラウザはhttpsでコンテンツをキャッシュするか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] CSRFとX-CSRF-Tokenの違いについて
-
[解決済み】ソフトウェアのライセンスキーはどのように生成されるのですか?
-
[解決済み】非画像ベースのCAPTCHAの実用的なアプローチ?
-
[解決済み】パスワードの「二重ハッシュ化」は、一度だけハッシュ化するよりも安全性が低いのでしょうか?
-
[解決済み】SHA512とBlowfish、Bcryptの比較【クローズド
-
[解決済み】cerファイル、pvkファイル、pfxファイルの違いは何ですか?
-
[解決済み】Windowsでコードサイニング用の自己署名証明書を作成する方法を教えてください。
-
[解決済み】ペイメントプロセッサー - 自分のウェブサイトでクレジットカードを利用したい場合、何を知っておく必要がありますか?[終了しました]
-
[解決済み】JWTをブラウザに保存する場所は?CSRFから保護する方法は?
-
[解決済み] reCaptchaはクラックされましたか?[クローズド]