サニタイジングとは?
「サニタイジング」について話す前に、SQLインジェクションの基礎についておさらいしてみましょう。
以下の記事も参考にしてくださいね。
再度SQLインジェクションの基礎について話します。
まず、SQLとは、データベースに対して、「こういう情報をください」と問い合わせを行うための「言葉」だと思ってください。
例えば、「東京生まれの人の一覧を下さい」とデータベースに対し、SQLで問い合わせれば、その一覧を得ることができます。
また、「東京生まれの人の情報を削除してください」という命令もSQLで送ることもできます。
そんなSQLによるデータの操作は通常、外部の人にはさせませんよね。
でも、SQLインジェクションが成功すると、インターネット経由で第三者がそのような操作をすることが可能なんです。
具体的には、Webサイトの入力フォームがありますよね。
あの入力フォームに、ハッカーが直接SQLの命令文を打ち込んで、データベースの情報を操作することができるんです。
でも普通はそのようなSQLの命令を直接打ち込んでも、SQL文で使われるような特殊な文字(「’」や「;」など)は無効化されるので安全なんです。
この無効化の処理を「サニタイジング」と呼ぶんですね。
しかし、Webサイトを作る際にそのサニタイジングがきちんとされていない場合、ハッカー・クラッカーが直接SQL文を入力して攻撃を行うことができてしまいます。
実はSQLインジェクションや、クロスサイトスクリプティングといった類の攻撃による被害は、非常に多いです。
それはつまり、サニタイジングがしっかりできていないWebシステムが多いということですので、システムを構築するプログラマーは、きちんとこの「サニタイジング」を行う必要があります。