- 2008-10-27 (Mon) 4:24
- article
to-RさんのXSSの脆弱性を限りなくなくす方法を読んでなんかもにょもにょしたのでエントリーを書く。多分、to-Rさんはこれから書くことに関して理解してて、あの対策を行なってるのかもしれないけど、それでも書く。自分の勉強も兼てるので変なところがあれば教えていただけるとありがたいです。
入力時エスケープは非常にややこしい
確かに、入力値に必ずエスケープしておけば、XSS対策漏れにはなるかもしれない。けれど非常にややこしいことになる。
例えば、受け取ったデータの文字列に対して文字数制限のバリデーションを行なうときにわざわざアンエスケープの処理を行なわないといけないし、DBへの保存の際にもアンエスケープが必要になる。ブログとかでフォームから受け取ったデータのうち、一部のタグは許容するときとかもかな。
ベストの対策はアプリの性質に合わせたエスケープなんだけども、これって完全になくすにはかなりの几帳面さが必要になるんじゃないかなと思います。(規模が大きくなればなるほど)
とエントリーでは書かれているけど、この対策が大規模になればなるほどXSSに限らず色々な問題が発生する気がする。大規模であればあるほど、出力箇所をみて「対策されている」というのがわかるのが大事。
コードを書きながら「DBに保存するからアンエスケープ・・・」「スクリプトとして出力するからアンエスケープ」って考えるよりは、「HTMLの出力時にエスケープ」の方がわかりやすいはず。出力時をみればいいんだから。
ちなみにフレームワークやテンプレートエンジンが出力時のエスケープをデフォルトで行なうってのは賛成です。なぜなら使っているフレームワークまたはテンプレートエンジンがエスケープしているということが自明なら、エスケープの有無を確認する必要がなくなるから。PHPとかWeb特化とか言うぐらいなら、デフォルトでエスケープして出力すればいいのにと思う。
なんかXSS対策とかエスケープって言い方がよくない気もするな。普通に「スクリプトを無効にする」とかで良い気がしてきた。スクリプトが有効になるのは、HTML出力時なんだからその時に無効化すればいいよね。
というか、PHPの人はmagick quoteでこりたと思ってたんだけど。
追記
ブクマコメ、高木さんより。
「普通に「スクリプトを無効にする」とかで良い気がしてきた」< XSSはスクリプトだけじゃない。>iframe<の挿入<form>の挿入を考えてみるよろし。CERT CA-2000-02ではXSSと呼ばず「Malicious HTML Tags Embedded in Client Web Requests」と呼んだ
あー、確かにそうですね。指摘ありがとうございます。Malicious HTML Tags Embedded in Client Web Requestsは初耳でした。
- Newer: RTMとか挫折するので自分に合うTODO管理を考えてみた
- Older: VimM#3開催のお知らせ
Comments:4
- Merlin Hayman 11-10-25 (Tue) 13:59
-
Magnificent beat ! I wish to apprentice while you amend your web site, how can i subscribe for a blog web site? The account helped me a acceptable deal. I had been a little bit acquainted of this your broadcast offered bright clear idea
- Jeffry Barth 11-10-30 (Sun) 23:29
-
I always was interested in this subject and still am, appreciate it for putting up. Thank you.
- Jermaine Aronica 11-10-31 (Mon) 0:08
-
With havin so much content do you ever run into any issues of plagorism or copyright violation? My blog has a lot of exclusive content I’ve either created myself or outsourced but it seems a lot of it is popping it up all over the internet without my permission. Do you know any solutions to help reduce content from being stolen? I’d certainly appreciate it. Thank you!
- Paz Farell 11-10-31 (Mon) 7:44
-
Hello, This is a Great post. I was checking this blog constantly and I am impressed! Extremely helpful info especially the last part) I appreciate such information very much. I was seeking this particular info for a long time. Thank you and good luck to you. Thanks
Trackbacks:1
- Trackback URL for this entry
- http://ukstudio.jp/2008/10/27/xss/trackback/
- Listed below are links to weblogs that reference
- XSS対策に入力時エスケープは非常にややこしい from UKSTUDIO
- trackback from MyBlog 11-10-21 (Fri) 15:48
-
Great post by this blog owner…
This person talked about it in a better way…



