タグ

ブックマーク / kaede.to/~canada (3)

  • おさかなラボ - PHPデベロッパがおかしがちな10のMySQL間違いがおかした間違い

    【レポート】PHPデベロッパがおかしがちな10のMySQL間違い | エンタープライズ | マイコミジャーナル という記事があったのですが、おや?と思う所があったのでツッコミを入れる。 ブラウザ側で動作するJavaScriptを使ったチェックに頼るのではなく、 サーバサイドのPHPでちゃんと検証すること。 PHPでの検証はあてにならない。Perlも然り。PHPには「サニタイズする」関数が沢山あるが、そういうものは安易に使わないようにしたほうがよい。「サニタイズ」ではなく「ヴァリデート」して、意図しない値はエラー、「来るはずがない」値はwarn()(だっけ?)でerror_logにログを吐いて死ぬように。ハカー以外ありえない人に普通の画面遷移見せるのはお人好しもいいところである。当然であるが、エラーログを画面に吐いて死ぬのは論外。 以上をちゃんとした上で、「必ず」プレースホルダを使う。鉄則。

    hidehish
    hidehish 2010/11/28
    見てる:
  • おさかなラボ - 携帯電話からセッションIDの漏洩を防ぐ

    携帯電話向けWebアプリの脆弱性事情はどうなっているのか@高木浩光@自宅の日記 より リンク先のWebサイトには、Refererと共に端末IDもリクエストヘッダとして送信されているわけで、セッションID入りURLと端末IDがセットで流出するのだから、当然、同じHTTPリクエストを送るだけの方法でなりすましアクセスされてしまう。 URIにセッションIDを含める方法では、悪意のあるサイトにリンクを張るだけでRefererヘッダからセッションIDが取り放題となる。また、悪意のあるサイトにアクセスしたユーザーは端末IDもHTTPヘッダに含めそのサイトに送信してしまう。端末IDは簡単に詐称することが出来るので、端末IDをチェックしてもセッションハイジャックの防止線にはならない、というお話。 私は携帯端末は専門ではないので細かいことは良くわからないのだが、以下を前提にして、携帯電話からセッション

  • おさかなラボ - フレームワークというか

    自分の開発スタイルについてある程度固まってきたのである程度公開してみる。 まずサニタイズ。自作のサニタイザを使用している。これは、指定したキーのクエリ変数しか使えないし、使う際は用途を指定しないと値が取り出せない。 ほとんどのクラックは、単なるサニタイズの「し忘れ」だ。だったらサニタイズしなきゃ使えないようにすればいーじゃんというのが今回の発想。昨今のクラックでは、「プログラムが使用してないクエリ変数」を使ってサニタイズを逃れるケースがあることを知った。俺の思想もまんざらではなかったようだ。 サニタイズの手順はこう。 check($_GET); validate($_GET); まず値の変更。論理的な判断を伴わないもの。行末の空白を切るとか、文字コードの変換とかそんなやつ。それが終わったらヴァリデーション。その次にサニタイズ。これがキモ。 $form_sanitizer =

  • 1