2016-08-27 9 views
1

私のコードはXSS Scriptingの脆弱性を抱えています。私はXSS Scriptingを防ぐためにJquery Encoderを使用しています。 以下はJSコードです。HTMLを含む文字列を正しくエンコードするにはどうすればよいですか(JavaScriptで)

function test(response) 
{ 

    $('#test').html($.encoder.encodeForHTML(response)); 
} 

応答の内容は、私がやるとき$ .encoder.encodeForHTMLは()、私は出力iが適切になっていたエンコーダを使用する前に(表となりますので、この予想

response="<html><body><table><tr><td>DATA1</td><td>DATA2</td></tr></table></body></html>" 

ですテーブル形式)が、今では応答文字列自体がdiv要素の内部に出力されています。

誰かが私にこれを手伝ってもらえますか?(HTMLコードを含む)レスポンスをエンコードする必要があるので、出力を適切なテーブル形式として取得します。

どこかに間違っているのですか、エンコードに間違った機能を使用していますか?提案はようこそ。

答えて

1

var encodedData = encodeURI(htmlDataToEncode);を応答として渡す前に使用してください。

+0

私はそれを渡す前に応答をエンコードする必要があります。そして、ここの関数でデコードし、.innerHTML()を使用してdivタグ内に設定しますか? – daniel

+0

が正しい。 encodeURI()でエンコードして、すべての特殊文字がフロントエンドからレスポンスが送信される前にエンコードし、 'responseHandler'関数でエンコードして、必要な形式に戻します。次に、フォーマットされた返された/処理された応答をdivにダンプします。 – AlexanderGriffin

関連する問題