ホーム > タグ > PHP

PHP

オレおれコーディング指針

PEARなどの有名どころのライブラリーやアプリケーションには
「コーディング規約」としてプログラミングの際の約束ごとがあります。
覚えることが多い頃には正直めんどくさくて見てません、
というより見る余裕がありませんでした。

そんなころに書いたコードにちょっと変更を加えたらエラー連発!
エラーが出るのはマシな方で、エラーも出てないのに
意図した通り動かない!って経験を何度か繰り返してるうちに
「コーディング規約」は必要だよなと思えるようになりました。

まあ、意図した通りに動かなかったのはこんなのでした。

// 本来↓こう書くべきところを
if ($car == 'skyline')

// ↓こうしてしまった単純なタイプミス。
if ($car = 'skyline')

これでも構文エラーにならなのでミスに気づけない、はまってしまうワナ。
もし↓こう書いていれば構文エラーですぐに原因を発見できたのですよ。
if ('skyline' = $car)

大きな時間の浪費につながる単純ミスをおかさないため
絶対やるようになった「オレおれコーディング指針」がこれ。
続きを読む

基礎PHP改訂3版届く

『基礎PHP 改訂3版』が届きました。
雑誌以外のPHPプログラミング本は久しぶり。

基礎PHPが2冊

2004年発刊の改訂新版も持ってるんだけど
こんときは、PHP5がリリースされてまもないころで
情報が、需要多・供給少だったのを思い出しました。
ずいぶんPHPを取り巻く環境も変わっていまは逆転してる感じ。

改訂新版との大きな違いは
PHP5.0 だったターゲットが PHP5.3に、
最後の課題のアプリケーションがスケジュール管理からブログに、
ベタで書かれてたスクリプトがSmartyやZendFrameworkを
使ったオブジェクト指向ベースのスクリプトに変わってました。

プログラミング入門から動くアプリケーションを作るまで、
元々ひろ~い範囲をカバーしてた本書がますます範囲を広げました。
プログラミング入門者がこれだけ見てアプリケーションを作れるようになる、
という本ではなく、JavascriptとかActionScriptとかクライアントサイドの
プログラミング経験がある人が「いっちょ、サーバーサイドに手を出してみるか。」
といったタイミングで手にすると良いと思う本です。

本文と別に、枠で囲んでちょこっと書いてる
『ヒント』的なやつが好きです。

WordPressテーマに仕込まれるワームが巧妙過ぎ

こちらの記事に即反応して確かめました。
それらしいものは検索にかからなかったのでほっとしてます。

WebTecNoteさん
[wp] WordPressテーマのfunctions.phpに仕込まれるワームについて

危険度合いもさることながら、巧妙過ぎで容易に気付けないのが恐ろしい。
多彩なテーマがフリーで手に入るWordpresだけに広がりやすくてまた怖い。
注意を促すため書きとめときます。

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

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

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

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

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

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

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

掲示板スパムを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(勝手に命名)という掲示板スパムボットが
どんなやつなのかプロフィールをご紹介します。
続きを読む

ホーム > タグ > PHP

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

ページの上部に戻る