情報セキュリティ

【セキュリティ】サニタイズとは?特殊文字の無効化!

サニタイズって何でしょうか。サニタイジングとも呼ばれるようなのですが、よく分かりません。

 

このような疑問に回答します。

 

本記事の内容

・サニタイズは特殊文字の無害化
・SQLインジェクションやXSSへの対策!

 

 本記事の信頼性

セキュリティ関連で「サニタイズ」という用語を聞いたことはありますでしょうか。今回は、サニタイズについて解説します。本記事を読むと、サニタイズについての概要を掴むことができます。なお、サニタイズの意味は様々な解釈がございますので、参考程度にご一読ください。

 

サニタイズとは?

 

サニタイズについて、説明するで!
お願いします!
サニタイズ(サニタイジング:sanitizing)は、HTMLの特殊文字を、一定のルールに則って別の表記に置き換えることを意味している。「無害化」するとも言われる。「エスケープ」とも呼ばれることがあるで。
特殊文字って何ですか・・・?
特殊文字というのは、「&」や「>」のことや。サニタイズは、特殊文字を単純なテキストデータとして扱うために行われる。
特殊文字は記号みたいな感じなんですかね。
せやな。特殊文字の無害化の例を紹介するで。例えば、「&」を無害化すると「&」と表現できる。「>」は「>gt;」と表現して無害化できるんや。特殊文字のままにしておくと、悪用されてしまう危険があるからな。
記号などの特殊文字を、悪用されないように別の表現に変えているのですね。サニタイズしないと、どのように悪用されてしまうのでしょうか。
特殊文字はHTMLで使うことができるやろ。せやから、HTMLを外から操作できないように文字列を無害化しているんや。つまり、特殊文字をHTMLのタグとして認識されないようにサニタイズをしている。
・・・タグって何ですか?
HTMLなどのマークアップ言語は、タグと呼ばれる文字列によって表現されているんや。例えば、brというタグは、「改行」を意味する。実際にHTMLで改行をしたい場合は<br>のように、タグ名をはさむんや。しかし、無害化する場合には、特殊文字を別の文字列に置き換える。
ふむふむ。
例えば、以下のようなHTMLコードがあって、無害化したいとする。ちなみに、h2というタグは見出しのことや。
<h2>特殊文字</h2>

 

以下のようにサニタイズ処理を行う。

 

&lt;h2&gt;特殊文字&lt;/h2&gt;

 

なるほど。HTMLとして意味をなさないようにサニタイズすると、第三者がHTMLの特殊文字を使えなくなるのですね。
せやな。無害化しているからな。ただの文字列に変えるんや。
実際、どのように攻撃を仕掛けられてしまうのでしょうか。
例えば、攻撃者がWebサイトの問い合わせフォームから、悪意のあるスクリプトやコマンドを入力される。せやから、悪意のある文字列がHTML出力やコマンドとして実行される前に、サニタイズを行うことで、予め攻撃を阻止することがでできる。
つまり、攻撃の無害化をするようなイメージですね!
せやな。有害な文字列を無害なものに置き換える。サニタイズを通して、SQLインジェクションやクロスサイトスクリプティングの攻撃を防ぐことが期待できるぞ。
SQLインジェクションとクロスサイトスクリプティングという攻撃手法についても知っておきたいです!

 

SQLインジェクションとは?

 

SQLインジェクションは、不正なSQLをWebサイトにインジェクションされる攻撃やな。サイトの入力フォームに悪意のあるSQL文を入力され、SQLが誤作動を起こすんや。ちなみにSQLはデータベース言語や。SQLインジェクションはデータベースを操作する言語やから、個人情報を盗まれてしまうリスクがあるな。
情報漏えいは怖いですね。この場合は、SQL文に対しサニタイズをする感じですかね。

 

クロスサイトスクリプティングとは?

 

せやな。次に、クロスサイトスクリプティング(XSS)は、Webアプリケーションへの攻撃手法の一つや。Webアプリケーションの脆弱性を突いた攻撃で、第三者が、Webサイトに対して悪意のあるスクリプトを組み込む攻撃になる。
ほうほう。
不正なスクリプトを入力フォームなどから入力されないように、サニタイズすることで対策するんや。XSSも恐ろしい攻撃やで。Webサイトの管理者は、Webサイトの改ざんに気付かないことも少なくなく、そのサイトに訪問したユーザーが被害を受けるリスクが高まる。
恐ろしいですね・・・

 

まとめ

 

サニタイズについて、なんとなく分かったかな?
はい!


サニタイズ(サニタイジング:sanitizing)とは、HTMLの特殊文字を、一定のルールに則って別の表記に置き換えること

ですね!
ふむ、よろしい。
セキュリティ対策として行われることなんだと理解できました!
せやな。サニタイズについては、何となくこういうものだという理解をしていれば良いぞ。これからも、わからんかったら俺に聞くんやで!

解説ありがとうございました!もっと色々なことを学んで、僕も優秀なエンジニアになりたいのですが、何か良い方法はありませんか?

せやな。そしたら、おすすめのサービスを紹介するから、要チェックや。プログラミングスクールの比較やで。

お願いします!

 

サービス名料金転職保証受講形態ポイント
TechAcademy [テックアカデミー]
12週間プラン:298,000円(税別)

※早期割引もあり※全額返金保証あり

オンライン完結無料体験あり。未経験からのエンジニア転職保証コース。東京で正社員として勤務。
DMM WEBCAMP
12週間:

624,800円(税別)

※キャッシュバックあり

※全額返金保証あり

オンライン完結無料カウンセリグあり。働きながら目指せる、未経験からの転職保証。卒業後のサポートも充実。
SkillHacks(スキルハックス)

69,800円(税込)

×オンライン完結プログラミングスクールよりもお手頃価格で,プログラミングスクールよりもわかりやすいコンテンツが特徴。

 

ありがとうございます!エンジニア不足だから、1〜3ヶ月くらいでなれるんですね。しかも、正社員転職率98%は驚きました!

今後もエンジニアの需要は増えていくから、勉強しておくだけでも、かなり得やで。サービスによっては、30代でも転職保証が付いてたりするから、仕事には困らなくなる!

早速、問い合わせだけでもしてみます!

---

▷ワカテク推奨サービス

ドメインなら
お名前.com

 

サーバーなら
エックスサーバー

-情報セキュリティ

Copyright© ワカテク【犬でもわかるITテクノロジー用語集】 , 2021 All Rights Reserved.