我目前正在从RSS提要(XML)中提取数据。一个例子是:
Bob's dog
现在我遇到了一个问题:由于来自国外的数据,我想保护自己免受XSS攻击。因此,我继续逃避数据,结果:
Bob's dog
现在,当我尝试打印我提取的数据时,它会打印出来:
Bob's dog
......而不是......
Bob's dog
问题:我如何保护自己免受XSS攻击,但仍然通过避免双重实体来打印数据?
答案 0 :(得分:1)
首先,您要使用html_entity_decode()
或htmlspecialchars_decode()
解码字符串。之后重新编码字符串以防止XSS使用:
htmlspecialchars($theString, ENT_QUOTES, 'UTF-8'); // or whatever encoding
尽管数据看起来已经被编码,但我们对其进行了重新编码,因为第三方在某些时候可以决定开始使用原始数据。
这样你仍然会受到保护。