2
私は、人々が自分のウェブサイトと一緒にコメントを残すことができるコメントシステムを持っています。レールはデフォルトですべてをエスケープするので、XSSを避けるために何もしません。何らかの理由でURLがエスケープされません。私は、単純なヘルパー持っているユーザ名を表示するためにレールでエスケープURL
:
def display_name(name, site)
if !site.blank?
return link_to(name, site)
else
return name
end
end
をしかし、あなたには、JavaScriptのようなもの置く場合:(1)それがページに直接注入を受けるウェブサイトのフィールドにアラートを - 任意のアイデア方法これを逃れるために?
ありがとうございます - 私はそれが解決されなければならない方法だと思います。しかし、urlがnil(または空の文字列)でない場合、どのように検証を実行すればよいか教えてください。 –
代わりにこのバージョンを使用してください:https://gist.github.com/1051088。これで 'validates:attribute、:url => {:allow_nil => true、:allow_empty => true}'のように呼び出されます。 –