えすきゅーえるいんじぇくしょん
SQLインジェクション
Webサイトの入力フォーム等で、SQL命令を不正に混入させるサイバー攻撃です。悪意ある命令で情報を盗む被害が出ます。
詳しい説明
SQLインジェクションは、Webサイトの入力フォームやURLパラメータを通じて、悪意のあるSQL文(データベースを操作するための命令文)を不正に混入させるサイバー攻撃です。本来、データベースは適切に設計された命令のみを受け付けるはずですが、対策が不十分なプログラムだと、攻撃者が混入させた命令をそのまま実行してしまいます。
具体的には、攻撃者は「' OR 1=1 --」のような特殊な文字列をフォームに入力し、データベースの認証を回避したり、保存されている全顧客情報を不正に取得したり、最悪の場合はデータを改ざん・削除したりします。Webアプリケーションの脆弱性を突く攻撃として、IPAのセキュリティ情報でも長年トップレベルの脅威とされています。
対策としては、SQL文の組み立てにプレースホルダを使用し、入力値をデータとしてのみ扱うようにすることが最も効果的です。また、入力値に含まれる特殊文字を無効化するエスケープ処理も基本ですが、プレースホルダの方がより安全です。試験では、攻撃の仕組みそのものと、これらの根本的な対策手法がセットで問われます。
試験で問われること
ITパスポート試験
- SQLインジェクションはWebサイトのデータベースを攻撃する手法である。
- 認証の回避や情報の不正取得が目的である。
- 対策としてプレースホルダの利用が有効であることを覚える。
基本情報技術者試験
- SQL文の構造を理解し、不正な命令文がどう生成されるかを問う問題が出る。
- プレースホルダの使用がなぜ有効か(データと命令の分離)が技術的に問われる。
- OSコマンドインジェクションとの違いを区別する。