エスキューエル‐インジェクション【SQLインジェクション】
SQLインジェクション
脆弱性を含んだスクリプトに対して、パラメータに不正なSQL文を渡すことでデータベースを操作する攻撃。この攻撃をされると、通常ではアクセスできないようなテーブルのデータを出力したり、データの消去、改ざんなどの被害を受ける。
$user_id = $_POST['user_id'];
$sql = "SELECT * FROM t_customer WHERE user='$user_id'";
';DELETE FROM t_customer ;
という値を渡されると、t_customerテーブルの全データが消えてしまう。
この脆弱性を回避するためには、ユーザからの入力値に対してエスケープ処理を施す、などの適切な処理が必要となる。PHPには既に、多くのデータベース関数の中に適切なエスケープを施す関数が用意されている。
関連Webサイト
SQLインジェクション
別名:ダイレクトSQLコマンド・インジェクション
【英】SQL injection
SQLインジェクションとは、Webサイトにリクエストを送るHTTPのパラメータにSQLの命令を含ませることで、SQLを採用しているデータベースに直接アクセスして不正操作を行う攻撃手法のことである。インジェクションとは「注入」「挿入」といった意味である。
SQLインジェクションを利用することによって、外部の第3者がデータベースの情報にアクセスし、情報の不正閲覧や改ざんを行うことができるようになってしまう。データベースのテーブルやフィールドの項目名が指定できれば操作できてしまうため、比較的ポピュラーな攻撃手法とされている。
SQLインジェクション
(SQL Injection から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/09/21 11:06 UTC 版)
SQLインジェクション(英: SQL injection)とは、アプリケーションのセキュリティ上の不備を意図的に利用し、アプリケーションが想定しないSQL文を実行させることにより、データベースシステムを不正に操作する攻撃方法のこと。また、その攻撃を可能とする脆弱性のことである。
- ^ “Blind SQL Injection white paper”. 2011年7月6日閲覧。
- ^ “MySQL 5.1 Reference Manual - 9.1.1 String Literals”. 2014年12月8日閲覧。
- ^ “異なる文字集合への変換がぜい弱性につながる”. 2011年7月6日閲覧。
- ^ 増田覚 (2007年12月12日). “丸紅インフォのカード情報漏洩、原因はSQLインジェクション対策の不備”. INTERNET Watch (インプレス) 2020年11月4日閲覧。
- ^ 不正アクセスによるお客様個人情報漏洩のお詫びとご報告 コーエーテクモホールディングス株式会社 2010年7月20日。
- ^ JPCERT / CCによる注意喚起。
- ^ Internet Watch - SQLインジェクションの復旧コスト、1億円超える事例も~IPAが報告書、2006年11月29日。
- ^ NRIセキュア - Webサイトのセキュリティ診断:傾向分析レポート2008、2008年7月28日。
- 1 SQLインジェクションとは
- 2 SQLインジェクションの概要
- 3 実例
- 4 脚注
「SQL Injection」の例文・使い方・用例・文例
- SQL Injectionのページへのリンク