我正在为我的Web应用程序构建基本安全层。我正在寻求验证我正在采取的步骤。目前的重点是XSS,所以我不会在这篇文章中涉及数据库。这是我到目前为止所做的:
所有这些似乎都是一个非常简单的安全层。任何人都可以推荐更好的策略吗?
答案 0 :(得分:1)
你的方法太简单了。 htmlspecialchars在每个环境中都没有多大帮助。
这是一篇关于XSS的非常好的备忘单,以及当你转义将被放入HTML的字符串时会出现什么问题。
https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29
黑名单也有它的缺点。例如,某些浏览器可能会解析
text/javascript
和
text/java
script
同样的方式。新的行和空格从后者中删除,因此它被解释为第一个。所以黑名单不会是防弹方法。
最好的策略是使用一些模板库,它已经全部为你处理了这一切。库必须知道字符串的上下文。元素值需要与属性值不同的转义。