クロスサイトスクリプティング対策

| | コメント(0) | トラックバック(0)

クロスサイトスクリプティング(XSS)対策の説明記事。

沢山あるだろうけど、今ふと目に留まったものを書いてみます。
思い出したところがあったら、追加するかも。

説明記事

・クロスサイトスクリプティングFAQ [原文]
http://lovemorgue.org/xss.html

・1-2. クロスサイトスクリプティング (IPA ISEC)
http://www.ipa.go.jp/security/awareness/vendor/programming/a01_02.html

RFC2396で規定されているURLで許可される文字は以下の文字だそうです。

英数字「;」「/」「?」「:」「@」「&」「=」「+」「$」「,」
「-」「_」「.」「!」「~」「*」「'」「(」「)」「%」
1-2. クロスサイトスクリプティング

RFC2396 (日本語)を参考にこの記号の内訳を調べてみました。
# XSSからは脱線

* 予約文字 (Reserved Characters)
URI成分中での用法は予約目的によって制限され、予約目的以外で使用するにはエスケープする必要がある文字(10種類)。

reserved    = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","

* 非予約文字 (Unreserved Characters)
予約文字以外のURI中に含むことを認められているデータ文字(英数字+9種類)。

unreserved  = alphanum | mark
mark        = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"

* エスケープ文字列
非予約文字を使った表現方法がない場合にエスケープされた文字列。
# 「%」はエスケープ表示子という予約目的があるけど、予約文字には含まれないのね?

escaped     = "%" hex hex
hex         = digit | "A" | "B" | "C" | "D" | "E" | "F"
                    | "a" | "b" | "c" | "d" | "e" | "f"

・252985 - [ASP] HOWTO: クロスサイト スクリプティングの脆弱性の問題
http://support.microsoft.com/default.aspx?scid=kb;JA;JP252985

フィルタリングするべき特殊文字は以下のものだそうです。

< > " ' % ; ) ( & + -
252985 - [ASP] HOWTO: クロスサイト スクリプティングの脆弱性の問題

「<」「>」「"」「'」「&」はよく言うけど、他の文字もあったので、一応メモ。

・はてなダイアリーXSS対策
http://d.hatena.ne.jp/nozom/keyword/%a4%cf%a4%c6%a4%ca%a5%c0%a5%a4%a5%a2%a5%ea%a1%bcXSS%c2%d0%ba%f6

参考になりそう。

5. スタイルシート内の「\69\6D\70\6F\72\74」といった文字参照を、EUC文字列に置換します。
はてなダイアリーXSS対策

この意味がいまいちわからない。。未熟者。

(2004/04/11 追記 ここから)
・@IT:クロスサイトスクリプティング対策の基本
http://www.atmarkit.co.jp/fsecurity/special/30xss/xss01.html
前編、中編、後編があります。
(2004/04/11 追記 ここまで)


トラックバック(0)

このブログ記事を参照しているブログ一覧: クロスサイトスクリプティング対策

このブログ記事に対するトラックバックURL: http://kinshachi.ddo.jp/mt/mt-tb.cgi/179

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、ikeが2004年2月13日 02:52に書いたブログ記事です。

ひとつ前のブログ記事は「OldVersion.com」です。

次のブログ記事は「PHPエディタ(forWin)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近のコメント

Powered by Movable Type 4.261