有人告诉我,我的数据库的输出是根据' " <
那么,插入是htmlspecialchars($content_to_escape, ENT_QUOTES)
,那么echo htmlentities($content_to_echo);
是多余的吗?
答案 0 :(得分:1)
将输入存储在数据库中。
或者,您可以验证输入服务器端以禁止某些字符。例如,对于街道名称,您可能只允许使用字母数字和-
,<space>
和'
字符。
但是,为防止XSS,重点应放在输出编码上。每次输出时都使用HTML编码功能。当您需要输出到另一个上下文(例如,JavaScript,JSON编码的十六进制实体编码等)时,在数据库中存储原始输入会使事情变得更简单(因此更加安全)。