ホーム > 今日の基礎体力 > いらんアクセス対策考

いらんアクセス対策考

[`evernote` not found]
[`grow` not found]
[`livedoor` not found]
[`yahoo` not found]
Delicious にシェア
このエントリーをはてなブックマークに追加

PHPの基礎体力をフルPHPに移行して1ヶ月。
メジャーな検索エンジンはコンテンツをほぼインデックスしてくれたので
301でリダイレクトしていたアクセスを404 NotFound に切り替えました。

この1ヶ月のアクセス解析で気づいたことですが
およそ1/3がスパム投稿や攻撃などのいらんアクセス。
これが無くなれば不要なトラフィックも減って
普通のユーザが快適に利用できるのにな~と思う。

いらんアクセスとはこんなの。

1.スパム投稿(コメント、TB)
2.目的不明・正体不明のクローラ(もしくはDDoS攻撃)
3.アプリケーションの脆弱性を突く攻撃

アクセスをはじくには、次のような値を組み合わせ
ブラックリストやホワイトリストとつきあわせて選別すればいい。

$_SERVER['HTTP_USER_AGENT']

ユーザーエージェント(ブラウザの情報)は
簡単に偽装できるので気休め程度。

$_SERVER['REMORT_ADDR']

間違いなく「いらないリモートホスト」と判断できる場合は
IPアドレスのブラックリストではじけばいい。
念のため逆引きしてみて、メジャーなプロバイダや
リモートホストで無いことを確かめてからリストにすべき。

$_SERVER['REQUEST_METHOD']

リクエストメソッドには、GET,POST,HEADなどがある。
フォームを送信する時はPOSTだけどこれだけでは
スパムと判断できないので $_POST の内容とあわせて判断する。

$_SERVER['REQUEST_URI']

誘導するURLや、相対パス、
PHP・Javapcriptなどのコードを含んだリクエストURL。
攻撃的なリクエストのパターンを作って比較する。

まあ、アクセスをはじくコードはいろんなところで
お目にかかれると思うので省きますが、
いらんリクエスト自体を減らす方法がないものか試行錯誤中です。

基本的には 404 を返してます。
NotFound のページを返すのももったいないので本文は無し。

やられてるだけでは悔しいので反撃も考えてみました。
リクエストをそのままリモートホストに301でにリダイレクト。
でも、間違ってうちが攻撃的なサイトと
判断されてはかなわないのですぐに止めました。

500を返すとどうだろうと思ったりもしますが
マナーも礼儀も無いリモートホストなので
何を返しても結局同じかもしれません。
落ち着いたら少し試してみます。

まあ、トラフィックが減ったので
404のページ(本文)を返さないのは良い選択でした。
もっと早く気づけってとこですけど。

コメント:0

コメントフォーム
入力した情報を記憶する
accessLogging

トラックバック:0

この記事のトラックバック URL
http://beatnik.jp/blog/archives/25/trackback
トラックバックの送信元リスト
いらんアクセス対策考 - PHPで翻訳三昧 より

ホーム > 今日の基礎体力 > いらんアクセス対策考

Ad
Apache
MySQL
PHP
お気に入り
ん。。。。。。広告
アーカイブ
Ad

ページの上部に戻る