サニタイジング
特別な意味を持つ文字の特別さを無効化するよ
ホームページやデータベースの話で出てくるよ
人によって定義が違う用語みたいだよ
簡単に書くよ
サニタイジング(英:sanitizing)とは
特別な意味を持つ文字の特別さを無効化して、意図していたのと違う動きをしないようにする処理のこと
です。
……と個人的には思っていますが、人によって定義が違うみたいですね。
詳しく書くよ
ホームページの世界やデータベースの世界などでは、文字や文字列(文字の組み合わせ)に特別な意味を持たせて特殊な処理をさせたりします。
この「特別な意味」を無効化する処理が「サニタイジング」です。
……と、いきなり言われても分かりませんよね。
大丈夫です。
例を挙げて説明します。
ホームページの世界では
<br>
と書くと「これは改行ですよ!」な目印になります。
例えば、ホームページのファイルに
ボクはピヨ太です。<br>趣味は昼寝です。
と書いてあったとしましょう。
そうすると画面上には
ボクはピヨ太です。
趣味は昼寝です。
と表示されます。
「<br>」が改行に置き換わっていますよね。
それでは、文字通り「<br>」と表示したい場合は、どうすれば良いのでしょうか。
画面上に
ボクはピヨ太です。<br>趣味は昼寝です。
と表示したい場合です。
そんなときは
<br>
と書きます。
先ほどの改行と考え方は同じです。
ホームページの世界では「<」と書くと「<」と表示されます。
同じように「>」と書くと「>」と表示されます。
ここでコンピュータさんの立場に立って考えてみてください。
コンピュータさんがやる処理は「『<br>』があったら改行に置き換えるよ!」です。
「<br>」は「<br>」ではないので改行に置き換えません。
ただし「<」は「<」に置き換えられ「>」は「>」に置き換えられます。
よって「<br>」と書くと画面上には「<br>」と表示されるのです。
それを踏まえて、読み進めてください。
ここにピヨ太君の作った「ピヨピヨ1行電子掲示板」があります。
ピヨピヨ1行電子掲示板は、メッセージ欄に書いた内容がホームページの画面に表示される仕組みです。
ピヨピヨ1行電子掲示板には誰でも自由に書き込めます。
書き込んだ内容は誰でも見られます。
そんな電子掲示板です。
ある日のことです。
アクマ君が以下の内容をピヨピヨ1行電子掲示板に書き込みました。
オレ、アクマ。<br>今日も元気にイタズラしまくってる。<br>特にピヨ太が相手だとイタズラし甲斐があるよね。<br>すぐムキになるから。<br>ゲヘヘ。
おやおや。
改行に置き換えられる「<br>」が、たくさん書いてありますね。
案の定、アクマ君の書いた内容は以下のように表示されました。
オレ、アクマ。
今日も元気にイタズラしまくってる。
特にピヨ太が相手だとイタズラし甲斐があるよね。
すぐムキになるから。
ゲヘヘ。
改行マークである「<br>」が実際の改行に置き換えられたのです。
それを見つけたピヨ太君は大激怒です。
「あんにゃろう!『1行』掲示板なのに、5行も書きやがった」とプンスカしました。
とはいえ、ピヨ太君は反省できる男です。
すぐに「まぁ、改行できるような仕組みになっていたのが悪かったな」と思い直しました。
反省したピヨ太君は行動に移します。
入力された「<br>」を「<br>」に置き換える処理をピヨピヨ1行電子掲示板に組み込みました。
これで「<br>」と入力されても改行になりません。
「<br>」と入力されたら、裏側で「<br>」に置き換えられて、画面上には「<br>」と表示されます。
これで、アクマ君も1行しか書き込めなくなりました。
オレ、アクマ。<br>今日も元気にイタズラしまくってる。<br>特にピヨ太が相手だとイタズラし甲斐があるよね。<br>すぐムキになるから。<br>ゲヘヘ。
と書き込んでも
オレ、アクマ。<br>今日も元気にイタズラしまくってる。<br>特にピヨ太が相手だとイタズラし甲斐があるよね。<br>すぐムキになるから。<br>ゲヘヘ。
と表示されます。
この話において、ピヨ太君がピヨピヨ1行電子掲示板に組み込んだ処理がサニタイジングです。
入力された「<br>」を「<br>」に置き換えて特別な意味を無効化しています。
……と個人的には理解しています。
今回いろいろと調べてみたのですが、どうやら「サニタイジング」という用語は危険な用語のようです。
まず第一に、定義が人によって違います。
迂闊に「サニタイジングって、こんな意味だよ!」とか書こうものなら、こだわり派な人たちが集まってきて「いいや違う!サニタイジングは、こういう意味だ!」「おまえの解釈も違う!本当は、こうだ!」のように論争の火種になる可能性があるようです。
第二に「サニタイジングするのは良いことか。それとも悪いことか」みたいな議論も一部界隈であるようです。
議論の内容には触れませんが、個人的には、きのこたけのこ戦争みたいなものだと思っています。
第三に「サニタイジングするのは良いことか。それとも悪いことか」な議論に参戦しようとしている人同士の間でも細かい部分でサニタイジングの定義が違ったりするみたいです。
そんな状態で議論を行ったら「えらいこっちゃ(--;」になりそうですよね。
ということで、こだわり派な人がたくさんいる状況では「サニタイジングが、うんちゃら」とか言わない方が良いみたいです。
ちなみに、このページの説明はITが専門外の他業種の方やIT業界に入りたてで右も左も分からないような人たちに向けて書いています。
「サニタイジング」という用語に一家言お持ちの専門家っぽい人たちは、言いたいこともあるかもしれませんが、グッと飲み込んで、華麗にスルーしていただければ幸いです。
一言でまとめるよ
まぁ「サニタイジング」って単語が出てきたら「特別な意味を持つ文字の特別さを無効化する処理なんだな~」と お考えください。
おまけ
■訳してみるよ
「sanitizing(サニタイジング)」は「sanitize(サニタイズ)」+「ing」です。
「sanitize(サニタイズ)」の意味は「消毒する」とか「衛生的にする」とかです。






