0

当您转义输出时,您可以这样做以防止 XSS:

      echo htmlentities( $variable );

我们是否也需要转义 json 对象以防止 XSS?:

      echo htmlentities( json_encode( $variable ) );

还是没有必要,请有人告诉我。如果不需要,请解释为什么?

查询:

在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 回答