0

出力をエスケープするときは、XSSを防ぐために次のようにします。

      echo htmlentities( $variable );

XSSを防ぐためにjsonオブジェクトもエスケープする必要がありますか?:

      echo htmlentities( json_encode( $variable ) );

またはそれは必要ではありません、誰かが私に言うことができます。必要ない場合は、その理由を説明してください。

JQuery:

ajaxの成功部分の内部:

$ .eachループになり、内容は次のようになります。

    $('#textbox').attr( 'value', variable ); 
4

2 に答える 2

1

はい、それは入力タイプのテキスト(テキストボックスhtml)の正しい値属性です。

あなたはそれを実行する必要がありますhtmlspecialchars(あなたも使うことができますがhtmlentities、それはやり過ぎです)。

HTMLで特別な意味を持つ文字("およびなど')はJSONテキストに表示される場合があり、(エスケープされていない場合)一致する文字で区切られた属性の「属性値の終わり」文字として機能します。

<input value="{ "foo": 1 }">
                 ^^^^^^^^^^
                 this is an error
于 2013-02-22T17:54:39.073 に答える
0

いいえ。JSONでエンコードされた出力は安全です。潜在的に有害な文字または入力タイプはすべて、適切にエスケープまたは引用符で囲まれています。

于 2013-02-22T17:01:33.750 に答える