タグ

NAMEとSELECTに関するj708のブックマーク (2)

  • PreparedStatementを使用したSQLInjection対策 - masaのメモ置き場

    エスケープだけしてれば、セキュリティ対策が万全になる訳ではないですよ - masaのメモ置き場 の話について、高木さんより「PreparedStatementを使いなさい、動的パラメータの例は分岐で処理しなさい」、という趣旨のコメントを頂いてしまった。まだ、もやもや感があるので、もう少し考えてみる。 数値型チェックの話 select password from usertable where id = 入力値 (idが数値型) 入力値に 1 or 1 = 1 が与えられると・・数値型の列に数値型以外の値が渡された時に発生する問題は、どの層ならば対策可能で、どの層が責任を持つべきなの?という話。型の概念を持つ言語なら、データベース層に数値型の引数を受け付けるインタフェースが用意されていて、アプリケーション層ではそのインタフェースを呼び出すことになる。型変換はアプリケーション層が行うことになる

    PreparedStatementを使用したSQLInjection対策 - masaのメモ置き場
  • [MySQLウォッチ]第27回 MySQL 5.0 および 4.1 にSQLインジェクションのセキュリティ・ホール

    先日,MySQL 5.0 および 4.1 に関してSQLインジェクションの危険性に対応するためにバージョンアップが行われた。 SQLインジェクションとは,入力されたデータにより意図せざるSQL文が実行されてしまうという攻撃である。データベースのデータを書き換えられたり,データが読み出されることにより情報が漏洩したりする恐れがある。セキュリティ・ホールというとWebサーバーやWebアプリケーション言語の専売特許だという印象があるが,データベースにも存在する。十分な注意が必要である。 以下,SQLインジェクションの原理と,MySQLに存在した問題の詳細とその対応について解説する。問題の発見から修正にいたるやりとりはWeb上で公開されており,誰がいつ問題を指摘し修正したのかもたどることができる。 mysqli_real_escape_string()関数によるSQLインジェクションの防止 プログ

    [MySQLウォッチ]第27回 MySQL 5.0 および 4.1 にSQLインジェクションのセキュリティ・ホール
  • 1