エスキューエル‐インジェクション【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 Injection」の例文・使い方・用例・文例
- SQL Injectionのページへのリンク
