2006年01月10日 01:22 [Edit]

「解毒」に「消毒」はいかが?

すでにここまでこの話題が進んでいる段階で遅きに逸している感もあるのだけれども。

高木浩光@自宅の日記
最近では、万能な意味で「サニタイズ」を使う人が増えてきた。英単語として のsanitizeは「消毒する」という意味だが、これをわざわざ意味を変えて「無 害化する」と訳す人が目立つようになってきた。その背景には、「入力で対策 することが誤りである」という指摘に対して、「出力で対策することもサニタ イズと呼びたい」という思考が働いているのだろう。

まずは本題の前に"sanitize"の意味から。もちろん「あいてぃ〜系日本語ジャーゴン」の「サニタイズ」と"sanitize"がもはや違う物を指し示している点を留意した上で。

Definition of sanitize - Merriam-Webster Online Dictionary
1 : to make sanitary (as by cleaning or sterilizing)
2 : to make more acceptable by removing unpleasant or undesired features <sanitize a document>

そう。この用法によれば、「サニタイズ」はとにかく"sanitize"を使うのは誤りではない。。しかもわざわざ御丁寧に"sanitize a document"というのが用法として載っている。もっとも「サニタイズ」という言葉の濫用が技術者の脇を甘くしたりいらぬ誤解を与えたりするのであれば、この言葉の使用は慎んだ方がいいし、その意味で「サニタイズ言うなキャンペーン」には賛成である。

それはさておき、私はカタカナ語が苦手である。英単語をそのまま使いたい場合はどうしても

Matzにっき(2004-08-07)
小飼さんは「ぱーる」の発音が英語風。

なってしまう。「カタカナイズするな」キャンペーンをはりたいぐらいなんである。

というわけで、以下の提案をしてみる。

解毒
入力されたデータから危険および脆弱性を取り除くこと。
消毒
出力されるデータに危険や脆弱生が含まれないようにすること。

なぜこう分けたか?生物学にインスパイヤ(笑)されたからだ。アルコールや薬など、すでに摂取したものは肝臓が解毒する。食料品などこれから摂取されるものは出荷前に消毒する。これなら分かりやすい上に方向を間違えにくい。

そして解毒法として「メタ文字のエスケープ」や「スクリプトの禁止」があり、消毒法として「出力の正規化」があると説明するのだ。そうすると

高木浩光@自宅の日記 - プログラミング解説書籍の脆弱性をどうするか, 「サニタイズ言うなキャンペーン」とは何か, ASPとかJSPとかPHPとかERBとか、逆だ..
これのどこが悪いかというと、 「id」と「postdate」について htmlspecialchars を通していない点である。

ということも、「缶詰なら缶ごと丸ごと火を通した方がいい」と実にすっきりと説明できるではないか。解毒と消毒の実践においても、解毒は細かく、消毒はいっぺんに行うとよいという点も共通している。

いかがだろうか?

Dan the Antidote


この記事へのトラックバックURL

この記事へのトラックバック
未だにカタカナ表記に慣れない私はそう思ったりもする。 MORI LOG ACADEMY: 間違ったカタカナ表記英語をカタカナで表記する場合、書き方がいろいろあって困る。検索するときに特に困る。「ミステリー」も「ミステリィ」も「ミステリ」で検索できるから、まだ被害が少ない。
カタカナ表記そのものが「間違い」?【404 Blog Not Found】at 2007年10月28日 01:26
1位をめざせ!いつもご協力ありがとうございます 人気ブログランキングへ!甲田英司・ヨロシクお願いします 経営ブログランキングもお願いしいます 今日は1月9日甲田英司の誕生日・・そして番組の収録 撮影は午後からと比較的時間に余裕があった 本....
誕生日ロケ・・・【ヒルズの虎/甲田 英司・社長日記】at 2006年01月10日 12:59