1

XSSとしてカウントされるかどうかはわかりませんが、エラーが発生しています

image_tag があり、:altタグはユーザーによって生成されます

ただし、sanitize/ h/を使用html_escapeしてもこれは役に立ちません (OWASP- hereから)

';alert(String.fromCharCode(88,83,83))//';alert(String.fromCharCode(88,83,83))//";
alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//--
></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>

するとき

:alt => (the string above)

画像の出力がめちゃくちゃです

この XSS を修正する方法はありますか?

私は最新のレール、ルビーを使用しています

4

2 に答える 2

1

Rails 3.2.8 およびCVE-2012-3464の修正以降、Rails エスケープ ヘルパーは二重引用符と単一引用符の両方をエスケープします。

実際に正しいバージョンを使用している場合は、問題ありません。

>> ERB::Util.h '\';alert(String.fromCharCode(88,83,83))//\';alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//--></SCRIPT>">\'><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>'
=> "&#39;;alert(String.fromCharCode(88,83,83))//&#39;;alert(String.fromCharCode(88,83,83))//&quot;;alert(String.fromCharCode(88,83,83))//&quot;;alert(String.fromCharCode(88,83,83))//--&gt;&lt;/SCRIPT&gt;&quot;&gt;&#39;&gt;&lt;SCRIPT&gt;alert(String.fromCharCode(88,83,83))&lt;/SCRIPT&gt;"

(注: 上記の生の文字列のバックスラッシュは、Ruby が文字列を適切に解析するために存在する必要があり、その文字列には一重引用符がそのまま含まれています。)

于 2013-01-08T09:37:03.890 に答える
0

フィルタ " ' で修正できます > この 3 文字だけで十分です

于 2013-01-09T07:13:24.327 に答える