カテゴリー : SQL

[Security]「SQLインジェクション対策」を理解するときに読むべきサイト

『よくわかるPHPの教科書』の著者 徳丸浩氏のブログを参考にして、「SQLインジェクション対策」を理解するときに読むべき記事を自分用にまとめました。

・参考:「SQLインジェクション対策」でGoogle検索して上位15記事を検証した – ockeghem(徳丸浩)の日記 はてなブックマーク - 「SQLインジェクション対策」でGoogle検索して上位15記事を検証した - ockeghem(徳丸浩)の日記

まず、上記記事のまとめ部分から抜粋。

  • SQLを動的に組み立てない
  • SQLのパラメータ指定には静的プレースホルダを用いる

この2つを守っている限り、アプリケーションやSQL呼び出しライブラリなどにバグがあっても、原理的にSQLインジェクション脆弱性は発生しません。

SQLインジェクションについて書くときに以下のメッセージを必ず含めて欲しいです。

  • 単にプリペアドステートメントを使え
  • 絶対に文字列結合でSQLを構築しようとしてはいけない
  • IPAの「安全なSQLの呼び出し方」を読むこと

引用元:[SQLインジェクション対策]Webアプリケーションとかの入門本みたいのを書く人への心からのお願い。 – *「ふっかつのじゅもんがちがいます。」withぬこ

プリペアドステートメントって何?って方はココら辺に分かりやすく書いてあるのでおすすめ。

プリペアドステートメント – データベース接続(PEAR::DB) – PEAR入門 はてなブックマーク - プリペアドステートメント - データベース接続(PEAR::DB) - PEAR入門

PHP: プリペアドステートメントおよびストアドプロシージャ – Manual はてなブックマーク - PHP: プリペアドステートメントおよびストアドプロシージャ - Manual
 

以下、「SQLインジェクション対策」を理解するときに読みたい記事たち。

・初心者向け:[SQLインジェクション対策]Webアプリケーションとかの入門本みたいのを書く人への心からのお願い。 – *「ふっかつのじゅもんがちがいます。」withぬこ はてなブックマーク - [SQLインジェクション対策]Webアプリケーションとかの入門本みたいのを書く人への心からのお願い。 - *「ふっかつのじゅもんがちがいます。」withぬこ

・中級者向け:PHPでのSQLインジェクション対策 – エスケープ・クォート編 — Let’s Postgres はてなブックマーク - PHPでのSQLインジェクション対策 - エスケープ・クォート編 — Let's Postgres

基本を抑えたら、IPAの「安全なSQLの呼び出し方」を読む。

情報処理推進機構:情報セキュリティ:脆弱性対策:安全なウェブサイトの作り方 はてなブックマーク - 情報処理推進機構:情報セキュリティ:脆弱性対策:安全なウェブサイトの作り方

以上です。