我被告知我的数据库的输出是基于输出的双重转义的,比如' " <
那么,对于insert使用htmlspecialchars($content_to_escape, ENT_QUOTES)
,然后使用echo htmlentities($content_to_echo);
是多余的吗?
发布于 2015-12-02 08:56:46
按照给定的方式将输入存储在数据库中。
或者,您可以在服务器端验证输入以禁止某些字符。例如,对于街道名称,您可能只允许字母数字和-
、<space>
和'
字符。
但是,为了防止XSS,重点应该放在输出编码上。每次输出时都使用HTML编码函数。当你需要输出到另一个上下文(例如,JavaScript的十六进制实体编码,JSON编码等)时,在你的数据库中存储原始输入会使事情变得更简单(因此也更安全)。
https://stackoverflow.com/questions/34007295
复制相似问题