5
イム入力をユーザーに許可するようにjQuery Markitupを使用してHTML ...そこで彼らは、入力されたもののようなことができます。しかしhtmlをエスケープするには?
<h1>Foo</h1>
<p>Foobar</p>
、私はhttp://railscasts.com/episodes/204-xss-protection-in-rails-3を見て、入力にコードのこの部分を試してみることにしました。
<script>alert('test');</script>
私の驚きは、フォームを送信してページをリフレッシュしたときに警告ボックスが出てきたことです。これはセキュリティリスクです。
これは私が私の見解で持っているものです。
<div><%= comment.description.html_safe %></div>
上記は、任意のHTMLをレンダリングするだけでなく、XSSになりやすいです。だから私は試してみました:
<div><%= html_safe(comment.description).html_safe %></div>
をしかし、上記の任意のHTMLをレンダリングしません。実際には、テキストというhtmlが表示されますが、これは目的の動作ではありません。
私はHTMLをレンダリングすると同時に、xssから自分自身を守る必要があります。これについてどうすればいいですか?
いやサニタイズは、HTMLをレンダリングし、JSからのアラートを実行しません。面白い。しかし、これにはどんな意味がありますか?私はhttp://railscasts.com/episodes/27-cross-site-scriptingを見ていました。Ryan Bは、「すべてのHTMLタグをエスケープしているわけではありません。 .. –