タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

databaseとhowtoに関するpenultのブックマーク (1)

  • 自己流のSQLインジェクション対策は危険

    HTMLエスケープの対象となる < > & " の4文字は、文字実体参照に変換された後、preg_replace関数でセミコロンを削除してしまうので、中途半端な妙な文字化けになりそうです。 一般的な原則としては、データベースにはHTMLの形ではなくプレーンテキストの形で保存しておき、HTMLとして表示する直前にHTMLエスケープする方法で統一することで、上記のような文字化けやエスケープ漏れをなくすことがよいでしょう。 脆弱性はないのか このsanitize関数に脆弱性はないでしょうか。上表のように、バックスラッシュ(円記号)を素通ししているので、MySQLや、設定によってはPostgreSQLの場合に、問題が生じそうです。以下、それを説明します。以下の説明では、MySQLを使う想定とします。 以下のように、ログイン処理を想定したSQL文組立があったとします。 $sql = sprintf(

    penult
    penult 2013/02/27
    「特別な事情」として昔のOracleではbind peekの弊害を避ける為にバインド変数使わないというバッドノウハウがあったけど、11gから気にしなくても良くなった? http://www.oracle.co.jp/events/jpm111109_11/materials/day3/B-14_DL.pdf
  • 1