提取的数据和XSS

时间:2014-01-25 15:21:33

标签: php entities

我目前正在从RSS提要(XML)中提取数据。一个例子是:

Bob's dog

现在我遇到了一个问题:由于来自国外的数据,我想保护自己免受XSS攻击。因此,我继续逃避数据,结果:

Bob's dog

现在,当我尝试打印我提取的数据时,它会打印出来:

Bob's dog

......而不是......

Bob's dog

问题:我如何保护自己免受XSS攻击,但仍然通过避免双重实体来打印数据?

1 个答案:

答案 0 :(得分:1)

首先,您要使用html_entity_decode()htmlspecialchars_decode()解码字符串。之后重新编码字符串以防止XSS使用:

htmlspecialchars($theString, ENT_QUOTES, 'UTF-8'); // or whatever encoding

尽管数据看起来已经被编码,但我们对其进行了重新编码,因为第三方在某些时候可以决定开始使用原始数据。

这样你仍然会受到保护。