コメントの間口を広げようとして、失敗して、きちんとTypeKeyに登録されている方を蹴落とすような間抜けな設定になっていました OTL
設定をやり直したので、これで、当初目的だった、はじきたい、うざい、スパムコメントをはじきながら、可能な限りコメントしてくださる方を受け入れられる設定になったと思います。とほほ。まさに策士、策に溺れる OTL
昨日は、SetEnvIfとallow/denyの設定で、スパマー(らしきアクセス)を排除しようとしていたんです。こんな感じ。
SetEnvIf Referer "^http://www\.wildtree\.jp" local
<FilesMatch "mt-comment\.cgi$">
order deny,allow
deny from all
allow from env=local
</FilesMatch>
ところが、これだと、TypeKey認証された投稿は、はじかれちゃうんです。正確に言うとサイン・インして、そこから直接くる場合に、Refererが空になってしまい、これをスパマーからの書き込みと誤認してしまっていたのでした。とほほ。
<FilesMatch "mt-comment\.cgi$">
order deny,allow
deny from all
allow from env=local
</FilesMatch>
あくまでSetEnvIfにこだわろうかと思ったのですが、SetEnvIfは半端に非力で、TypeKey認証によってRefererが空になったのと、スパマーだから空なのとを区別できなかったので、断念して、より強力(凶悪)な、mod_rewriteを使うことにしました。で、結局こんな風にしました。
RewriteEngine on
RewriteCond %{SCRIPT_NAME} mt-comments\.cgi$
RewriteCond %{HTTP_REFERER} !^http://www\.wildtree\.jp
RewriteCond %{QUERY_STRING} !__mode=handle_sign_in
RewriteRule ^.*$ - [F,L]
ああ、なんて凶悪なんでしょう……OTL
RewriteCond %{SCRIPT_NAME} mt-comments\.cgi$
RewriteCond %{HTTP_REFERER} !^http://www\.wildtree\.jp
RewriteCond %{QUERY_STRING} !__mode=handle_sign_in
RewriteRule ^.*$ - [F,L]
コメント