Pedia

SQLインジェクション

えすきゅーえるいんじぇくしょん

意味

SQLインジェクションとは、Webアプリケーションの入力フォームなどに、不正なSQLコマンド(データベースへの命令文)を注入(インジェクト)し、データベースを不...

概要

Webサイトの入力フォーム(ログイン画面など)に、不正なSQLコマンド(データベースへの命令文)を注入(Injection)することで、データベースを不正に操作するサイバー攻撃の手法。 Webセキュリティにおいて最も古くからあり、かつ最も危険な脆弱性の一つ。

仕組み

例えば、SELECT * FROM users WHERE name = '入力値' というSQLがあるとする。 入力欄に 田中 と入れれば問題ないが、' OR '1'='1 と入力したとする。 するとSQLは ... WHERE name = '' OR '1'='1' となり、「1=1」は常に正しい(True)ので、パスワードを知らなくてもログインできてしまったり、全ユーザーのデータが盗まれたりする。

対策

プペアドステートメント(プレースホルダ)を使うことで、入力値を「ただの文字」として扱い、命令文として実行させないようにするのが基本中の基本。

TOP / 検索 Amazonで探す