日記
MM/Memoでも一応対応コードをつけてみた (15:10)Edit

MM/Memoの場合はTypeKey認証を使っている関係上、直接アプリケーションからPOSTするようなツールは使えない(ものすごく頑張れば使えなくもないけど)から、こういうチェックを導入したせいで、その手のツールが使えなくなるという人はいないよね? ブラウザ上でbookmarkletとか使ってGETでパラメータ渡ししている場合は問題ないし。

ちなみにチェック処理の内容は、フォームを生成するときに、

$check_key = md5([ユーザーID] , [秘密の文字列]);

で生成したチェックコードを、

<input type="hidden" name="check_key" value="<?=h($check_key) ?>">

なんて感じで埋め込んでおき、POSTされたときに、

if ($_POST['check_key'] != md5([ユーザーID] , [秘密の文字列])) {
die('認証失敗');
}

しているだけね。認証キーはユーザーIDから生成しなくても、まったくランダムに作ってセッションに保存しておいてもいい。

それにしても、これからの公開Webアプリはみんなこういう対策を標準で取らないとだめなんだろうなー。これから作るフォーム周りのライブラリには、こういう機能を標準で持たせておくべきか。

あ、できればリファラーチェックで弾くような実装はやめてね。俺は基本的にリファラーオフが標準だし。

Published At2005-04-21 00:00Updated At2005-04-21 00:00