検索プログラマのメモ帳

壁にぶつかったら検索で調べるプログラマのちょっと遅れたメモ帳。たまに自分で挑戦する。

Skip to: Content | Sidebar | Footer

phpでセキュリティーの基礎

21 6月, 2011 (20:42) | セキュリティー(PHP) | By: admin

バグ

  1. 2 . 2250738585072011E-308をdubleにキャストすると無限ループする(32bitのみ)。最新版では修正済み

phpのこれだけはやっておきたい設定

  1. safe_mode = off・・・完全に他人のファイルを見えなくすることはできない。
  2. register_globals = off・・・グローバル変数の初期値を外部からいじり放題。
  3. magic_quotes_gpr = off・・・必要がないものまでエスケープして、漏れもある。
  4. allow_url_include = off・・・dnsの改斬で任意のプログラムを読み込まされる。
  5. allow_url_fopen = off・・・dnsの改斬で任意のプログラムを読み込まされる。
  6. error_reporting = E_ALL・・・できるだけエラーを出すようにする。

使えない関数は代わりのものを使う

  1. 「strip_tags」ではなく「htmlspecialchars」・・・誤動作させる方法がある。ENT_QUOTESと文字コードのパラメーターもしっかり入れる。
  2. 「addslashes」ではなく「mysql_real_escape_string」・・・rdbsの挙動によって惰弱性につながる。
  3. shift-jisは使わない。使うときはviewでエンコードする。
  4. 正規表現は「preg」を使う。マルチバイトが使えないものは使わない。
  5. 「mb_」系があるものはそちらを使う。マルチバイトの惰弱性を突かれないために。
  6. sql文はなるべく、文字列結合を使わない。できればプレースホルダを使う。どうしても使う場合は「mysql_real_escape_string」。

携帯サイトで注意

  1. できるだけcookieを使う。
  2. セッションの有効期限は短くする。
  3. 外部サイトに飛ぶときは、セッションを消してから。

基本的なこと

  1. 管理画面はbasic認証とIP制限をかける。
  2. display_error = off・・・エラーを見せない。

すでにやっていたことも多かったけど、気にしていながらそのまま使っていた関数とかもあった。

Write a comment