サニタイジングについて解説します。情報処理試験で出された問題もまとめました

情報処理技術者試験

こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。

この記事では、セキュリティ対策としてよく出る、そして情報処理試験にも出題されるサニタイジングについて

  • 基本情報
  • 応用情報

に合格した私が、多くの画像を使って丁寧に解説します。
また、情報処理技術者試験で実際に出題された問題もまとめました。

サニタイジングとは

サニタイジングとは、テキストボックスなどの入力フォームに

  • HTMLコード
  • JavaScriptコード

など害悪な文字列がないかをチェックし、特定の文字に置き換えて無害化することです。
もともとの英語の意味としてサニタイジング(sanitizing)は、消毒という意味です。
サニタイジングの対象となる文字と無害化前と後は以下の表です、

無害化前 無害化後
< &lt;
> &gt;
&quot;
&#39;
& &amp;

サニタイジングは、

  • クロスサイトスクリプティング(XSS)
  • SQLインジェクション

などの攻撃からシステムを守るために使われます。

サニタイジングの具体例

サニタイジングについて具体例としてとあるアンケートを使って解説します。

このアンケートでは入力されたものがそのまま保存されます。

あるとき、悪意のあるユーザーがHTMLコードを入れて登録しました。

上の画像の通り、HTMLコードによって本来意図していないものを表示してしまいました。
このままだと、inputタグなどを入れられ情報が盗まれたり、データベースを破壊するようなコードを入力される危険があります。
そのため、アンケートではサニタイジング(sanitizing)を導入しました。

サニタイジングを入れることで、HTMLコードを入力したとしても、<>などの文字は無害な文字に置き換えられ、データベースにはただの文字列として保存されます。
こうして、アンケートはセキュリティを高めることができました。

情報処理技術者試験で実際に出題されたサニタイジング問題のまとめ

サニタイジングについて解説しました。
この章では情報処理試験で、実際に出題された問題を試験ごとにまとめます。

ITパスポート

ITパスポート平成28年春期 問64

基本情報

基本情報技術者平成28年春期 午前問38

応用情報

ソフトウェア開発技術者平成20年春期 午前問70

まとめ:サニタイジングは、特定の文字列を無害な文字に置き換える

以上がサニタイジングの解説です。
あなたの勉強に少しでもお役に立てれば幸いです。
ではでは~(・ω・)ノシ

コメント

タイトルとURLをコピーしました