ジチテン

SQLインジェクション

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

意味

SQLインジェクションとは、入力欄に不正な命令文を紛れ込ませてデータベースを不正に操作する、Webアプリケーションへの攻撃手法である。

電子申請や検索の入力欄に文字を打ち込んだだけで、その裏のデータベースが丸ごと抜き取られることがある。SQLインジェクションは、本来は氏名や番号を入れる入力欄に、データベースへの命令文(SQL)の断片を紛れ込ませ、アプリが意図しない検索・改ざん・削除を実行させる攻撃である。設計の甘いWebアプリが標的になり、個人情報の大量流出につながる代表的な手口として知られる。

この攻撃の根本原因は、利用者が入力した文字を、命令文の一部としてそのままデータベースに渡してしまう作りにある。対策は、入力値を命令と切り離して扱う実装(プレースホルダの利用など)や、想定外の文字をはじく入力検証で、アプリケーションの作り込みの段階で防ぐのが本筋である。WAFによる検知は補完的な防御線という位置づけになる。

自治体が直接コードを書くわけではないが、システムを調達・委託する立場として、この種の脆弱性が作り込まれていないかを確かめる責任がある。脆弱性診断でSQLインジェクションの有無を点検し、要件定義検収の段階で安全な実装を求めることが、流出を未然に防ぐ実務上の要点となる。

つながりのある用語

関連

ご意見箱(匿名でひとことから投稿できます)