Gaucheプログラミング(立読み版)

HTML文字列をエスケープする Slideshow

text.html-liteライブラリのhtml-escape-string手続きは、HTMLとして“不適切な”文字をエスケープします。

例:

 gosh> (use text.html-lite)
 #<undef>
 
 gosh> (html-escape-string "<p>")
 "&lt;p&gt;"
 
 gosh> (html-escape-string "\"test\"")
 "&quot;test&quot;"
 
 gosh> (html-escape-string "&")
 "&amp;"
 
 gosh> (html-escape-string "?")
 "?"
 
 gosh> (html-escape-string "+")
 "+"
 
 gosh> (html-escape-string "/")
 "/"
 
 gosh> (html-escape-string "あああ")
 "あああ"

HTMLで要素名を括るときに使う<記号や>記号のほか、&記号、"記号がエスケープされているのが分かります。 これらの文字はHTMLソースコードそのものを構成するため、CGIでそのまま表示すると予期せぬ結果を生じます。ユーザー入力された文字列をCGIで表示する際は、その表示の直前にhtml-escape-string手続きでエスケープしておくべきです。

 by えんどうやすゆき

Comment Form:

コメント・トラックバック規約を必ずお読みください。

 

Comments:

2007/04/30 11:56:08 shiro
text.html-liteを使った場合、属性の値は自動的にエスケープされることに
触れといてください。

Trackback URL: http://karetta.jp/trackback/book/011567/011615

Trackbacks:


このサイトについて|ヘルプ|Q&A|個人情報保護|プライバシーポリシー|利用規約|コメント・トラックバック規約|削除規程|広告掲載
Copyright (c) 2005-2007 Time Intermedia Corporation