先日からのURL整理対策(
その1、
その2、
その3)の効果は絶大で、アクセス数が半分近く減っちゃいました(半泣)。なんてこったい。
それは実力どおりの統計になってきたということで仕方のないことですが、許せないのは
/action.php?action=http://hogehoge.hoge.hoge/index?みたいに訳のわかんねーパラメータを付けてくる阿呆です。この怪しいパラメータつきのアクセスは結構前から非常に気になっていたのですが、どのような対策をしたらよいのか迷っていました。しかし、要は存在しないエントリにアクセスしよう(させよう)としているというか、なにかよからぬことをしようとしている不届きものなのは確かです。
Nucleusの場合、存在しないエントリを指定しても何故かステータスコード200を返してしまいます。上記例でも
/action.phpまでは存在しているので、さも当然のように200 OKと返してしまっています。OKじゃねーっつーの。大体200 OKなんて返すからいい気になってどんどん送りつけてくるバカタリがいるんじゃねーのか?こっちはnullデバイスじゃないんだよこのすっとこどっこい。
ということで、こんなやつらは存在しないものにアクセスしようとしている「
ひとつ」人の世生き血をすすり「
ふたつ」不埒な悪業三昧「
みっつ」醜い浮世の鬼ですから、全部まとめて404ステータスで退治てくれよう桃太郎。
対策としては非常に簡単。
1、404ステータスを返すエラーページを作成する。(ex. error404.php)
この場合、このエラーページには
正しいエラーコードを返すで書いたとおり、エラーステータスを返すphpコードを埋め込んでおきます。
2、スキン編集からエラーページの編集を行い、エラー時には上記作成のエラーページに飛ぶように設定する。
具体的には
スキン/テンプレート変数:phpincludeを使って先に書いたエラーページを呼び出します。たぶん
か
とか書いておけばいいでしょう。ここいらは自分の設定に合わせて修正よろしく。
この2段階でOKです。
ここまでやってもパラメータによっては素通りしてしまうのがあります。一定回数以上に不届きアクセスをした場合はアクセス拒否にしてしまおうと思っていますが、当面これで様子をみましょう。まぁ、人の迷惑なんて関係なく送ってくるところがほとんどですからあまり意味ないかも知れませんけど、ささやかな抵抗だけはしておきましょうね。
成敗。