- ベストアンサー
Perlかjavascript スパム対策
現在、メールフォームにスパム対策を しようと考えているのですが、 画像認証で検索しているところ、 PerlではKent-web様のものがあったのですが、 ちょっとむずかしく断念しました。 そして調べているうちに 下記のようなサイトを見つけたのですが、 https://iritec.jp/web_service/7006/ やり方がのっていませんでした。 このようなことを実行したいのですが、 どのようにするのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
(別にPerlでなくても良いですが)サーバー側のスクリプトをPerlとして説明します。 ざっくりと言うと Perl側で鍵のON/OFFの「データのパーターン」を作成し、暗号化した「データのパーターン」を表示するページの要素として付与します。 ユーザーから送信された暗号化した「データのパーターン」を復号し、ユーザーが入力した鍵のデータと比較し、合っていれば人間と判定します。 と言うことで(JavaScriptだけでなく)Perl側の処理も必須です。
その他の回答 (2)
- tracer
- ベストアンサー率41% (255/621)
そんな複雑なことをしなくても、送信をajax化(受付URLを隠蔽)すれば、スパムに関してはほぼなくなるよ。あと、nameとかmailとか定形のフィールド名は使用しないとか、逆にあえて使用してそこに値が入っていたら受け付けないとかしたら、もうほとんどなくなる。もちろん、人間に狙われたら簡単に突破されるけど、スパムロボットを騙す程度のことはこれだけで十分。
お礼
ご回答ありがとうございます! なるほど、そういうやり方もあるのですね。 ただ、いたちごっこなことはわかってはいるのですが、 ロボット対策はもちろん、人対策もしておきたいのです・・・ 一応、禁止ワード(URLや広告といったものなど)はPerl側で 規制はしております。
- Proof4
- ベストアンサー率78% (151/192)
パラメーターを与えてサーバーサイドで生成した個々の画像を表示しておきます。 画像をクリックすると画像URLのパラメーター名がJavascriptで書き換えられ、サーバーサイドプログラムからクリック後の画像をリクエストするといった動作です。 具体的にはもともとimg要素のsrc属性に URL?aaa=ハッシュ値 と指定されているものが、クリックすることで URL?bbb=ハッシュ値 と変化するような形です。ハッシュ値を同一のものにしながらパラメーター名を変化させることでうまく処理をしているものと思われます。 ハッシュ値を用いて画像を生成しているのは、パラメーターから画像がどのようなものか推測されないようにするための対策でしょうね。
お礼
ご回答ありがとうございます! 厚かましいかと思いますが、 ・具体的なソースを教えていただけませんでしょうか? ・もしくは、そのようなソースが乗ってるサイトはありませんでしょうか?
お礼
ありがとうございました! 理解できました。 JavaScriptは一切使わず実行できました。