レールアプリケーションでは、ユーザーはイベントを作成し、外部イベントサイトにリンクするURLを投稿できます。URLをサニタイズしてXSSを防止する
XSSリンクを防ぐためにURLをサニタイズするにはどうすればよいですか?事前に
おかげで、いくつかの基本的な制限のためにsanitize方法あなたはRailsの使用できるサニタイズ方法
@url = "javascript:alert('XSS')"
<a href="<%=sanitize @url%>">test link</a>
レールアプリケーションでは、ユーザーはイベントを作成し、外部イベントサイトにリンクするURLを投稿できます。URLをサニタイズしてXSSを防止する
XSSリンクを防ぐためにURLをサニタイズするにはどうすればよいですか?事前に
おかげで、いくつかの基本的な制限のためにsanitize方法あなたはRailsの使用できるサニタイズ方法
@url = "javascript:alert('XSS')"
<a href="<%=sanitize @url%>">test link</a>
は、HREFタグにすでにある一度のように消毒してみてください。
url = "javascript:alert('XSS')"
sanitize link_to('xss link', url)
これは私を与える:
<a>xss link</a>
この脆弱性は、3.2.13、3.1.12、2.3以降に修正されました。 18。
次のリンクは、以前のバージョンで使用できるパッチも提供しています。 HTML文字列ではなく、URLを含む作品sanitize
https://groups.google.com/forum/#!msg/rubyonrails-security/zAAU7vGTPvI/1vZDWXqBuXgJ
。つまり、URL自体をサニタイズすることはできませんが、悪意のあるURLとリンクしているHTMLを消毒することができます。 xss linkは動作しません。たとえば、すべての既知の悪質な属性
@url = "警告( 'XSS')のjavascript" のあなたのリンクをきれいにします
ため。私は私の質問に、私はすでにレールのサニタイズ方法をテストしたことを反映する必要があります。 – rickypai
rgroveのsanitize gemは、組み込みのRailsのサニタイズがあなたに与えるよりも多くの制御が必要な場合、本当にいいですね。いずれにしても、ベンの答えが指摘するように、URL自体だけでなく、リンク全体のHTMLをサニタイズする必要があります。 – antinome