【SQLインジェクション】わかりやすく解説!XSSとの違いは?

セキュリティ

「SQLインジェクション」って?

「SQLインジェクション」とは、データベースの破壊・変更・盗聴を行う攻撃方法の1つです。
超メジャーな攻撃方法なので、Webアプリケーション開発の際は必ず対策が必要になります。

攻撃方法はいたってシンプル。
検索ボックスやお問い合わせフォームなどの「テキスト入力フォーム」に、データベースを破壊するSQL文を記述して「送信」ボタンを押すだけ。
対策されていないサイトだと、一発でWebサイトが破壊されてしまいます。

既存の有名なWebサイトであれば大抵は対策されているはずなので、SQL文を入力したところで何も起こらないでしょう。

でも対策されていないWebサイトの場合、SQL破壊・SQL変更・SQLデータ盗聴などやりたい放題。
全データを削除されるのも困りますが、アカウント情報を盗まれるのも困ります。

SQLインジェクションの対策は「プレースホルダ」という手法が有効です。

よく似ている手法「クロスサイトスプリクティング」

SQLインジェクションとよく似ているものに「クロスサイトスプリクティング(XSS)」があります。
SQLインジェクションはデータベースを操作するのに対し、クロスサイトスプリクティングはjavascriptを操作します。

手法としてはほとんど同じです。
XSSは、掲示板のようなデータが保存されるタイプの入力フォームに埋め込まれることが多いです。
たとえば掲示板にjavascriptで「”やっほー”というアラートを10000000000回表示する」というようなソースコードを記述した場合、対策がされていない掲示板だと、誰かがその掲示板にアクセスするたびに”やっほー”というアラートが無限に表示され続けるというような動作不良を起こします。
無限やっほー程度のいたずらで済めばいいですが、中にはもっと危険な動作をするjavascriptもありますので、対策は絶対に怠らないようにしなきゃいけません。


Category
9WEB