中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

AntiXSSのだめなところ

実行前
AntiXss.HtmlEncode:<%=AntiXss.HtmlEncode("azAZ09,-_ <>%'\"日本語") %>
Server.HtmlEncode:<%=Server.HtmlEncode("azAZ09,-_ <>%'\"日本語") %>
AntiXss.HtmlAttibuteEncode:<%=AntiXss.HtmlAttributeEncode("azAZ09,-_ <>%'\"日本語") %>
AntiXss.JavaScriptEncode:<%=AntiXss.JavaScriptEncode("azAZ09,-_ <>%'\"日本語") %>
AntiXss.UrlEncode:<%=AntiXss.UrlEncode("azAZ09,-_ <>%'\"日本語") %>
Server.UrlEncode:<%=Server.UrlEncode("azAZ09,-_ <>%'\"日本語") %>
AntiXss.VisualBasicScriptEncode:<%=AntiXss.VisualBasicScriptEncode("azAZ09,-_ <>%'\"日本語") %>

実行後
AntiXss.HtmlEncode:azAZ09,-_ &#60;&#62;&#37;&#39;&#34;&#26085;&#26412;&#35486;
Server.HtmlEncode:azAZ09,-_ &lt;&gt;%'&quot;日本語
AntiXss.HtmlAttibuteEncode:azAZ09,-_&#32;&#60;&#62;&#37;&#39;&#34;&#26085;&#26412;&#35486;
AntiXss.JavaScriptEncode:'azAZ09,-_ \x3c\x3e\x25\x27\x22\u65e5\u672c\u8a9e'
AntiXss.UrlEncode:azAZ09%2c-_%20%3c%3e%25%27%22%u65e5%u672c%u8a9e
Server.UrlEncode:azAZ09%2c-_+%3c%3e%25'%22%e6%97%a5%e6%9c%ac%e8%aa%9e
AntiXss.VisualBasicScriptEncode:"azAZ09,-_ "&chrw(60)&chrw(62)&chrw(37)&chrw(39)&chrw(34)&chrw(26085)&chrw(26412)&chrw(35486)

昨日のAntiXSSLibraryについて初音さんが食いついてきた(^^;ので、ちゃんと続報します。

でいきなり上が答えです。

AntiXSSのドキュメントにどの文字をエンコードするかHTMLでも一般的なテキストノードやなどにでてくる場合と、属性中にでてくる場合によってエンコードする文字が違うと言うことがかかれています。

ただエンコードの仕方がいきなり乱暴です

意味的に等価としても, lt, gt, amp, quotの4つは文字実体参照にすることが一般的には求められています。

サイズを小さくしたいがためというなら、quotについては許容できるかもしれません。

空白についてもnbspへの変換の方が望ましいでしょう。

ASCIIの範囲外の文字については興味がないようで、無条件に数値実体参照に変換しています。

一番使いたいJSとVBSについてはほぼHTMLエンコードと同じ乱暴っぷり

クォート種類への配慮だけでよいはず。またはそのまま出力されることを考慮するならHTMLエンコード範囲も考慮するべきかもしれませんが、日本語を使うと絶望できます。(とくにVBS)

URLエンコードはやや微妙

もともとURLエンコード自体非常に微妙で、QueryStringに渡す?と&と=と,は特殊な扱いで、それら以外の非ASCIIはエンコードするような仕様です。

なので本来URLのQueryStringにはキーと値にだけエンコードする。値を列挙する場合には区切り文字として,を挿入して、要素内の,はエンコードするなんて事をちまちま意識しなくてはいけません。

それよりもなによりも、UTF-16にエンコードするとは何事ですか・・・

おととい出直してきてください

開発チームのと直接コンタクトをとらせてもらえないかな。小一時間説教・・・・・・

投稿日時 : 2007年4月24日 14:52

コメントを追加

# re: AntiXSSのだめなところ 2007/04/24 21:00 中博俊

http://blogs.wankuma.com/naka/archive/2007/04/23/72580.aspx

# re: AntiXSSのだめなところ 2007/04/26 11:01 masa

このライブラリはAntiXSSLibraryの名の通り、XSSを防ぐ為のライブラリです。
導入の思想として、「ブラックリストは危険な為ホワイトリストを使用する」ということがどこかに記載されていたと思います。
ホワイトリストとして定義されている文字はアルファベット及び一部の記号であり、それ以外の文字は無条件にエスケープされます。
マルチバイト文字がホワイトリストに含まれていないのは、マルチバイト文字が安全ではない為です。
標準のエスケープ(特殊文字をブラックリスト形式で管理し変換)では防げない「特殊な攻撃」にも耐性を持てるようにするためのライブラリですので、ある程度の乱暴な挙動は仕様であると許容するしかないと思います。

# re: AntiXSSのだめなところ 2007/04/26 11:10 中博俊

そう。
多少のことは多めに見て取れるところもあります。
だがしかし。UTF-16へのエンコードだけは許容できません。

# re: AntiXSSのだめなところ 2007/04/26 11:53 masa

なるほど。
UTF-8なら分かりますがUTF-16は確かに変ですね。
なんでUTF-16にエンコードしているのでしょう?
これは、小一時間説教した方がよいかもしれません。

# can money buy happiness essay g86wxj 2022/09/08 19:42 AaronBlact

You actually revealed it perfectly. https://definitionessays.com/ best dissertation writing

# write essays for scholarships z30snh 2022/09/08 22:08 Charlosmox


With thanks, Quite a lot of facts!
https://definitionessays.com/ english essay writing

# generic chloroquine phosphate 2022/12/25 18:30 MorrisReaks

hydroxychloroquine buy online http://hydroxychloroquinex.com/

# english essay writing help v93toc 2023/04/02 13:09 EugeneSib


Good info. Cheers!
cv writing services https://essaywritinghelperonline.com dissertation writing help https://domycollegehomeworkforme.com

# writing a descriptive essay about a person t98hgc 2023/04/03 6:12 EugeneSib


You definitely made your point!
how to write an persuasive essay https://essaytyperhelp.com creative writing essay prompts https://buyanessayscheaponline.com

# The plugins developed for WordPress 2023/05/09 23:50 Justas

The plugins developed for WordPress serve to enhance the features and functions of a WordPress website, allowing you to build your awesome and functional site https://t.me/wpigaming/648 Customise WordPress with powerful, professional and intuitive fields.

# joint pain rash arthralgias foot ache 2024/06/01 23:09 hierneEret

http://jointpain.top/ - joint pain from side sleeping

タイトル
名前
URL
コメント