使用htmlspecialchars进行输入是否多余,然后在输出中使用htmlentities?

时间:2015-11-30 20:21:08

标签: php xss

有人告诉我,我的数据库的输出是根据' " <

等输出进行双重转义的

那么,插入是htmlspecialchars($content_to_escape, ENT_QUOTES),那么echo htmlentities($content_to_echo);是多余的吗?

1 个答案:

答案 0 :(得分:1)

将输入存储在数据库中。

或者,您可以验证输入服务器端以禁止某些字符。例如,对于街道名称,您可能只允许使用字母数字和-<space>'字符。

但是,为防止XSS,重点应放在输出编码上。每次输出时都使用HTML编码功能。当您需要输出到另一个上下文(例如,JavaScript,JSON编码的十六进制实体编码等)时,在数据库中存储原始输入会使事情变得更简单(因此更加安全)。