为了成功防止XSS,逃避输入并不是最好的选择。输出也必须转义。如果您使用Smarty模板引擎,则可以使用
|escape:'htmlall'修饰符将所有敏感字符转换为HTML实体(我使用自己的
|e修饰符,这是上面的别名)。
我输入/输出安全性的方法是:
- 存储未修改的用户输入(输入不转义HTML,仅通过PDO准备好的语句完成DB感知转义)
- 在输出时进行转义,具体取决于您使用的输出格式(例如HTML和JSON需要不同的转义规则)

为了成功防止XSS,逃避输入并不是最好的选择。输出也必须转义。如果您使用Smarty模板引擎,则可以使用
|escape:'htmlall'修饰符将所有敏感字符转换为HTML实体(我使用自己的
|e修饰符,这是上面的别名)。
我输入/输出安全性的方法是: