ホーム

PHPで翻訳三昧

攻撃的(?)なリクエストのサンプル

いつもと毛色の違う攻撃的(?)なリクエストが・・・。
これだけでたいした悪さの出来るものではないところがいつもと違います。

脆弱性をテストするサンプルか!

スーパーグローバル変数 $_GET$_POST$_COOKIE$_SERVER['HTTP_*']
$_SERVER['REQUEST_URI'] あたりで得られる値をそのまま使ってると
なにか動作するものと推測出来ます。
クライアントから来る値を信用してはいけない。っていうわかりやすい見本です。
こういうのがあるので以下の2点は必ずやりましょう。

1.プログラムで使用する前に、想定内の値かどうか確認する。(バリデーション)
2.HTMLとして整形時に無効化する。(サニタイジング)

ちなみにこのリクエストは、
アプリケーションのバリデーションに引っかかったのではなく
こちらのフィルタにかかって、即ハネられたものです。
攻撃的?なリクエストをフィルタリングしてみる

設計段階でクライアントから受け取る値(文字)に制限を設けておけば
未知の攻撃に対してもこうした予防措置をとることが出来ます。

それにしても http://www.puritysearch.net/ は
うちのサイトの脆弱性テストでもしてるのでしょうか。
レポート(Japanese only)、気長にお待ちしてます。

spamp:掲示板スパムバリデータ出来ました

掲示板スパム対策の取り組みもこれでひと区切りとしたいと思います。
PHPスクリプトのダウンロードとドキュメントはこちらです。
spamp : 掲示板スパムバリデータ

spampは、マルチバイトを含まない投稿をはじく、
投稿出来るURL数を限定する、
プロキシっぽいクライアントを拒否する、
といったフィルタはまったく使っていません。
CAPTCHA(画像認証)やパスワードによる認証でもありません。

掲示板スパムボットのプロファイリングから生まれた
ロジックで判定をおこなっています。

人がやれば簡単に突破できる
極めて単純な仕組みですが自動投稿ロボットにはこれが難しいのです。
いつか新手のロボットが現れるまでの繋ぎとはわかってますが
その時はまたプロファイリングしてロジックを組み直したいと思います。
ロボットを手先に、楽して一発儲けようとしてる
スパム業者なんぞには負けません。

それにしてもここ1ヶ月くらいで
コメントスパムのリクエスト数が激減。多い日でも3件程度に減りました。
このフィルタリングの影響・・・とは考え難いので
他にそれっぽい記事を見ないので
Waledacボットネットの件が影響してたのかな・・・。

さて最後に、WordPressのコメント投稿に
組み込んだ方法を紹介しておきます。
続きを読む

攻撃的?なリクエストをフィルタリングしてみる

PHPプログラミングを扱ってるからでしょうが
毎日なにかしらの攻撃的なリクエストがあります。

特定のURLに誘導するものとか、サーバーのコマンドを実行するものとか
SQLインジェクションとか、アプリケーションの脆弱性をつくものとか・・・
まあ、アクセスログにはいろいろと記録されてます。

4/2はこんな感じでした。
脆弱性をつく攻撃的なリクエストの図

攻撃者が、任意のコードやコマンドをうちのサーバーで
なんとか実行させようと試みてるのがみてとれます。

うちのサイトでこのようなリクエストは全部 Error404 ってことになり、
レスポンスにボディーは無し、コマンドも実行されることもありません。
今日は攻撃的なリクエストのフィルタリングについて書いてみます。
続きを読む

掲示板スパムを5秒でノックアウト

昨夜 Spamp の Bata5 をアップしたばかりだけど、気づいてしまったのだ。

掲示板(コメント)スパムボットには
フォームのリクエストから投稿があるまで
大抵1~3秒、長いものでも4秒までという投稿パターンがある。

これを応用して Spamp の セッション判定では
例えセッションが成立してても、あらかじめ設定した「待ち時間」を
経過しない投稿はスパムと判定しているんだけど、
掲示板スパムボットがCookieを送受することを逆手にとって
Cookieにも「待ち時間」を適用できるってことに気づいてしまったのだ。

フォームのリクエスト時にCookie送信。
この時 Cookieには タイムスタンプ を記録。

投稿のあった際、Cookie のタイムスタンプと現在時刻を比較し
待ち時間が経過してなければスパムと判定。

5秒あればスパムをフィルタリングできてしまいます。
これならSpampを使わずともいろんな掲示板に応用できる。
PHPに限らないし、改造もメチャ簡単。
フォームがあるものなら掲示板スパム・コメントスパムに限らずいけます。

SpampではCookieの整合性チェックもやってるので
もしタイムスタンプが改ざんされてもスパムと判定出来ます。
Cookieがなければスルーしてるけど
次はセッションの方でスパムを判定できます。

取り急ぎ、この判定コードを4行書き足してっと、アップし直しました。
Cookie、Javascript、Sessionに依存しないのが特徴。
掲示板スパム対策 ライブラリ Spamp Bata 5.1

掲示板スパムボット報告 – AHoo+C

掲示板スパムボット対策に新しいフィルターを試してます。
が、設置3日で不覚にも突破されました。
原因は、isSpam() が全く反対の判定結果を返してました。
こういうのがあるから先にテストケースを書くべきなんですね。

それにしても、設置から丸3日間は
投稿フォームを収集しに来た形跡が無かったことを考えると、
スパム投稿を防げることに加え、リクエストすら来なくなるので
Javascript等で投稿フォームを隠しておくことが
どれほど有効なのか良くわかります。

こんな対策を施してます:
JavaScript でスパム投稿対策
積極的なスパム投稿対策

ひさしぶりのスパム投稿なのでこの機会に
AHoo+C(勝手に命名)という掲示板スパムボットが
どんなやつなのかプロフィールをご紹介します。
続きを読む

クリックだけで絞り込み検索

久しぶりにアプリケーション作ってみた。
名づけて『クリックだけで絞り込み検索』

こんな感じのことをやってるサイトをどっかで見かけ
いいアイデアと思ったけど、したはずのブックマークがみつからず
薄れかけてる記憶をたどりながらノベ5日かけて完成しました。
出来るときは何でも一気にできてしまうものです。

一般にあまり使われない専門用語がたくさんある業界だと
キーワード検索で目的の商品にたどり着くのは困難だけど
あらかじめキーワードが羅列してあるこの検索方法なら
ユーザーは何かしら次のアクションが取れるわけです。
これをプルダウンメニューの絞込み検索にすると見通しが悪い。

クリックだけで絞り込み検索
うちわ検索

素材はクライアントさんの商品を流用させていただきましたので
この先はホントのECサイトにつながってます。

文字を打つことなくキーワードを足したり引いたり、
クリックだけで検索出来る利便性もさることながら、
この検索に感じる一番の魅力は
検索されるキーワードとランディングページの関連付けを
操作できる可能性を持っていることです。

絞り込まる程に特定のキーワードに特化した検索結果になるので
「検索エンジンで上位に来てるけど見せたいページじゃない」
といったジレンマを解消する内部的なSEO対策になると思います。
続きを読む

ホーム

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

ページの上部に戻る