創屋ぷれす

SQLインジェクション とは

アプリケーションのセキュリティ上の不備を意図的に利用し、アプリケーションが想定しないSQL文を実行させることにより、
データベースシステムを不正に操作する攻撃方法のこと。また、その攻撃を可能とする脆弱性のことである。

SELECT * FROM users WHERE name = ‘(入力値)’;
というクエリがあったとして

攻撃の例としては
文字列入力に「’」 や ORの条件文 を加えて全件対象となる条件にしてしまう。
SELECT * FROM users WHERE name = ‘t” OR ‘t’ = ‘t’;

「;」を加えて、別のクエリを実行する
SELECT * FROM users WHERE name = ”; DELETE users WHERE ‘t’ = ‘t’;

等がある

SQLインジェクションの対策は、SQLを扱うモジュールにデフォルトで使えるようになっているものが多いので、プレースホルダを使って
自前で文字列を結合しないことが手っ取り早いらしい

Comments are closed.