PatiPati+で実践できるとことんスパム対策。
PatiPati+は、標準装備のスパム対策機能だけでも十分な効果が期待出来ます。
ここから先は「よりマニアックな」スパム対策コーナーです。
注意点
・改造前に、手をつけていない状態のファイルセットをアップロードして正常動作するのを確認してから開始してください。
・改造を行う場合は、必ず一箇所変えるたびにファイルをアップロードして動作テストを行ってください。
複数箇所を変更した後の不具合は、問題の切り分けに苦労することになります。
・ファイル名などは原則コピー&ペーストで処理してください。右クリック→名前の変更→ファイル名コピー→CGIの該当部分にペーストです。
・変更後の保存は文字コードEUCを指定して行ってください。→EUC形式保存可能エディタ ■ ■
1.index.cgiの名前を変える。
忘れられがちなようですが、これをしてあるかしてないかだけでスパムにつかまるリスク自体が大きく変わってきます。
この項目に関してはマニアックではなく、スパム対策のデフォルトと考えてください。
例のために、ここでは「index.cgi」→「yddex.cgi」としておきます。
(もちろん自分が設置するときは、他のユニークな名前に変更してください)
変更したCGI名は、preset.cgiの「$cgi_file」にセットします。「$cgi_file
= 'yddex.cgi';」となります。
テストのために変更ファイルをアップロードして「元index.cgi」のyddex.cgiにアクセスして見ましょう。
パーミッションはCGIの動作するものに変更します。正常に動作していたら次へ。
2.preset.cgiの名前を変える。
ここからがマニアック編です。
必要な設定をすべて書き込み終えたら、いったん文字コードEUCで保存し、
このファイルを「適当な名前」に変更します。
例: preset.cgi→yui.fty (拡張子も適当でかまいません)
このファイル名を名称変更した「元index.cgi」の上から7行目にある「require」にセットします。
上記の例だと「 require 'yui.fty';」となります。
テストのために変更ファイルをアップロードして「元index.cgi」のyddex.cgiにアクセスして見ましょう。
パーミッションはCGIの動作するものに変更します。(この部分はサーバの仕様によって多少変わります)
「preset.cgi」にはメールアドレスを記述することもあるので、とことんガードして見ました。
動作実例 http://rin.so.land.to/yamisuzu/tryit/yddex.cgi 上で記述したものと全く同じファイル構成で設置してあります。
サーバの仕様によっては使えないこともあります。
テストとしてさくらインターネット、land.to、infoseek iswebで動作に成功しています。
3.cgi名を見えないようにする。
これには「.htaccess」ファイルを使用します。
ファイルセットの「anti-spam」フォルダ中にサンプルが収めてあるので、テキストエディタで開いてください。
サンプルでは一番下の行に「DirectoryIndex
index.cgi」と書かれていますが、このndex.cgiの部分を
リネームしたcgi名に置き換えます。上の例で言うと「DirectoryIndex
yddex.cgi」となります。
注意:この方法を使うときは必ずPatiPati+のファイルセットのみを収めたディレクトリを作ってください。
それ以外の場所に.htaccessをこの設定で置くとindex.htmlなどの表示が無効になってしまいます。
書き換えした.htaccessをPatiPati+のあるフォルダにアップします。
すると、収めたディレクトリ名までのアドレスでCGIを動作させられるようになります。
この方法を使うときは、お礼ファイルの「もっと送る」部分のアドレスも忘れずに変更してください。
(ボタンを画像ファイルにする必要があります)SRC="url"
動作実例 http://rin.so.land.to/yamisuzu/tryit/ 上の実例と同じCGIですが、CGI名は見えなくなっています。
これもサーバの仕様によって使えないことがあります。
テストとしてさくらインターネット、land.toで成功、infoseek iswebでは無効でした。
4.PatiPatiのボタンをJavaScriptで記述する。
これはサイトのデザインにも関わって来る事なので参考程度として。
テキストにリンクするより画像に、画像にリンクするよりJavaScript呼び出しに、とスパムからの捕捉率が低くなります。
上の例をそのまま使うと、ボタン表示用のソースは以下のようになります。
<FORM><INPUT type="button"
value=" 拍手 " onclick="window.open('http://rin.so.land.to/yamisuzu/tryit/')"></FORM>
以上、マニアックなスパム対策でした。
なお、この手法は他のCGIにも原則として応用できます。
|