2012-03-09 16 views
6

レールアプリケーションでは、ユーザーはイベントを作成し、外部イベントサイトにリンクするURLを投稿できます。URLをサニタイズしてXSSを防止する

XSSリンクを防ぐためにURLをサニタイズするにはどうすればよいですか?事前に

おかげで、いくつかの基本的な制限のためにsanitize方法あなたはRailsの使用できるサニタイズ方法

@url = "javascript:alert('XSS')" 
<a href="<%=sanitize @url%>">test link</a> 

答えて

1

をレールによって予防可能ではありませんXSSの

例。

また、rgroveのsanitize gemを使用してさらに多くのオプションを利用できます。

これが役に立ちます。

+0

@url = "警告( 'XSS')のjavascript" のあなたのリンクをきれいにします

<%= sanitize "<a href='#{@url}'>Things</a>" %> 

ため。私は私の質問に、私はすでにレールのサニタイズ方法をテストしたことを反映する必要があります。 – rickypai

+1

rgroveのsanitize gemは、組み込みのRailsのサニタイズがあなたに与えるよりも多くの制御が必要な場合、本当にいいですね。いずれにしても、ベンの答えが指摘するように、URL自体だけでなく、リンク全体のHTMLをサニタイズする必要があります。 – antinome

5

は、HREFタグにすでにある一度のように消毒してみてください。

url = "javascript:alert('XSS')" 
sanitize link_to('xss link', url) 

これは私を与える:

<a>xss link</a> 
1

。つまり、URL自体をサニタイズすることはできませんが、悪意のあるURLとリンクしているHTMLを消毒することができます。 xss linkは動作しません。たとえば、すべての既知の悪質な属性

関連する問題