SSブログ

サニタイズって(略) [戯言]

ockeghem(徳丸浩)の日記 - XSS対策:どの文字をエスケープするべきなのか』を読んで。

あ~、言われてみれば、確かに「>」「"」をエスケープする必要って無いな。

………。
………。
………。

と書くと、上の一文だけを読んで、『「>」と「"」は、「>」と「"」に変換してはいけない』と解釈する人がいるからなぁ、困ったことに。

蛇足ながら補足しておくと、HTMLを解釈するプログラムやHTMLの書き方を工夫することで、「>」「"」はエスケープしなくても正しく解釈できるということです。
個人的には、「<」はエスケープが必要で「>」は不要なんて非対称なことは、物事を複雑にするだけなので好きじゃないのです。


さて、余計な文字をエスケープした為に、正常に動かなかった事例を1つ。

某システムでのこと。
属性値(「<input type="text" value="○○○">」の「○○○」部分)用エスケープ関数では、次の文字を変換していました。

「"」「'」「<」「>」「 」(空白)
   ↓
「&quot;」「&#39;」「&lt;」「&gt;」「&nbsp;」

『「&」を変換していない』という致命的な問題は、この際、脇に置いておいて。

この場合の余計な文字は「 」(空白) → 「&nbsp;」なわけで、こいつの所為で、IEではちゃんと動いてくれませんでした。
詳しくは言えないけど。
っていうか、どうして今まで発覚しなかったのか。
(なんで発覚しなかったかというと、「IEは動作対象外」という今時ありえない仕様だったから)


それは兎も角。

『HTMLでの属性値、すなわち"~"で囲まれている箇所は、「"」→「&quot;」の変換をする』
という説明を見た某氏は、
Javascriptの文字列("~"で囲まれている)にも、「"」→「&quot;」の変換をしてくださりました。がっでむ。

[船] 今日の一冊
四日間の不思議 (ヴィンテージ・ミステリ・シリーズ)

四日間の不思議

  • 作者: A.A.ミルン
  • 出版社/メーカー: 原書房
  • 発売日: 2004/06
  • メディア: 単行本

タグ:HTML
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。