2013-02-22 58 views
0

当你逃脱输出你做这样的防止XSS:如何逃脱JSON喜欢你逃避输出,以防止XSS

 echo htmlentities($variable); 

我们需要逃避JSON对象过于防止XSS?:

 echo htmlentities(json_encode($variable)); 

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

JQuery的:

阿贾克斯的成功部分内:

这将是在$。每个环路和内容将是:

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

你如何转义数据取决于*你把它放在哪里*,而不是你要转义的数据是什么。我们不能告诉你需要对数据做什么,因为我们不知道你的'echo'声明出现在哪里。 – Quentin 2013-02-22 17:01:23

+0

JSON对象被解析为javascript/JQuery。并用于显示输出,有时放在文本框中。 – 2013-02-22 17:47:12

+0

“JSON对象被解析为javascript/JQuery” - 没有说明你在哪里放置它。只是什么处理它。这可能意味着你创建了一个'application/json' HTTP响应,或者将它作为'data-json'属性值嵌入到div中,或者将它嵌入到'

0

号JSON编码输出是安全的。所有可能有害的字符或输入类型都会被正确转义或引用。

+0

根据JSON文本的回显位置,这可能会也可能不会。 (例如,如果它被回送到HTML属性值中,它不是真的) – Quentin 2013-02-22 17:02:47