2011-12-28 7 views
1

レールで属性値をサニタイズする最良の方法は何ですか?レールで属性値をサニタイズする方法

<img alt="<%= h 'untrusted-data' %>" src="image-source-here" /> 

私はHTML共通に信頼されていないデータを挿入する前owasp.net XSS prevention cheat sheet.

  1. 属性エスケープに与えRule #2Rule #3について特に心配挿入する前
  2. JavaScriptのエスケープ属性:コードは次のようになります信頼できないデータをJavaScriptデータ値に変換する

html_escapeメソッドは目的には十分ですか?何らかの理由でTagHelperで提供されているtagメソッドを使用できません。 Rails 2.3.5バージョンを使用しています。

+1

ルービのエンコーダin owasp。 encode_for_html_attrを参照してください。 https://github.com/thesp0nge/owasp-esapi-ruby/blob/master/lib/codec/encoder.rb – Erlend

答えて

2

はい、十分です。 (別の「しかし私はそれはタイプミスだと思う:)

<img alt="<%=h untrusted %>" src="img.png" /> 

h"が含まれていると、攻撃者がalt属性の外に出ることができなくなりますように&quot;ことによってそれを置き換えるためにuntrustedを防ぐことができます。また、彼女はまた、何の構文解析がそれに行われないようalt属性によって何かを利用することができません。

例えば、それはa年代href属性、攻撃者ができたであろう、その場合にはにあった場合、それは違うだろうない場合でもクリックしたときにいくつかのjavascriptコードを実行する属性から外れることができる。 (javascript:alert(/XSSed/);のように)

+0

信頼できないデータがイベントハンドラであるHTML属性で使用されている場合は十分ではないことに注意してください。http ://erlend.oftedal.no/blog/?blogid = 124 – Erlend

+0

うん、それは私が 'href'の例で説明しようとした場合のようなものでした。 – thoferon

+1

良いここに、ruby用のhtml属性エンコーディングのOWASP実装があります:https://github.com/thesp0nge/owasp-esapi-ruby/blob/master/lib/codec/encoder.rb – Erlend

関連する問題