GLOSSARY

SQLインジェクション

最終更新日:

SQLインジェクションとは、Webアプリケーションの入力欄などに細工した文字列を入れ、データベースを不正に操作する攻撃です。

Webアプリケーションは、利用者の入力をもとにSQLと呼ばれる命令を組み立て、データベースに問い合わせます。入力をそのまま命令の一部としてつなげていると、攻撃者が入力欄に命令の断片を入れ、本来見られない情報を取り出したり、データを書き換えたり消したりできてしまいます。

会員の情報や注文の記録など、データベースにある情報がまとめて漏れるおそれがあり、影響の大きい攻撃です。OWASP Top 10 では「インジェクション」の項目に含まれ、IPAの「安全なウェブサイトの作り方」でも取り上げられています。

基本の対策は、入力を命令と分けて渡す仕組み(プレースホルダ)を使うことです。多くのフレームワークにはこの仕組みが備わっていますが、使い方を誤ると防げません。脆弱性診断で確かめ、WAFを補いとして組み合わせます。

関連する用語

この用語が出てくるコラム

用語集の一覧に戻る ナレッジのトップへ