• ベストアンサー

Perlかjavascript スパム対策

現在、メールフォームにスパム対策を しようと考えているのですが、 画像認証で検索しているところ、 PerlではKent-web様のものがあったのですが、 ちょっとむずかしく断念しました。 そして調べているうちに 下記のようなサイトを見つけたのですが、 https://iritec.jp/web_service/7006/ やり方がのっていませんでした。 このようなことを実行したいのですが、 どのようにするのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

(別にPerlでなくても良いですが)サーバー側のスクリプトをPerlとして説明します。 ざっくりと言うと Perl側で鍵のON/OFFの「データのパーターン」を作成し、暗号化した「データのパーターン」を表示するページの要素として付与します。 ユーザーから送信された暗号化した「データのパーターン」を復号し、ユーザーが入力した鍵のデータと比較し、合っていれば人間と判定します。 と言うことで(JavaScriptだけでなく)Perl側の処理も必須です。

perlhogehoge
質問者

お礼

ありがとうございました! 理解できました。 JavaScriptは一切使わず実行できました。

その他の回答 (2)

  • tracer
  • ベストアンサー率41% (255/621)
回答No.2

そんな複雑なことをしなくても、送信をajax化(受付URLを隠蔽)すれば、スパムに関してはほぼなくなるよ。あと、nameとかmailとか定形のフィールド名は使用しないとか、逆にあえて使用してそこに値が入っていたら受け付けないとかしたら、もうほとんどなくなる。もちろん、人間に狙われたら簡単に突破されるけど、スパムロボットを騙す程度のことはこれだけで十分。

perlhogehoge
質問者

お礼

ご回答ありがとうございます! なるほど、そういうやり方もあるのですね。 ただ、いたちごっこなことはわかってはいるのですが、 ロボット対策はもちろん、人対策もしておきたいのです・・・ 一応、禁止ワード(URLや広告といったものなど)はPerl側で 規制はしております。

  • Proof4
  • ベストアンサー率78% (151/192)
回答No.1

パラメーターを与えてサーバーサイドで生成した個々の画像を表示しておきます。 画像をクリックすると画像URLのパラメーター名がJavascriptで書き換えられ、サーバーサイドプログラムからクリック後の画像をリクエストするといった動作です。 具体的にはもともとimg要素のsrc属性に  URL?aaa=ハッシュ値 と指定されているものが、クリックすることで  URL?bbb=ハッシュ値 と変化するような形です。ハッシュ値を同一のものにしながらパラメーター名を変化させることでうまく処理をしているものと思われます。 ハッシュ値を用いて画像を生成しているのは、パラメーターから画像がどのようなものか推測されないようにするための対策でしょうね。

perlhogehoge
質問者

お礼

ご回答ありがとうございます! 厚かましいかと思いますが、 ・具体的なソースを教えていただけませんでしょうか? ・もしくは、そのようなソースが乗ってるサイトはありませんでしょうか?

関連するQ&A