保护我的Web应用程序免受恶意输入

时间:2013-04-18 18:53:19

标签: security xss

我正在为我的Web应用程序构建基本安全层。我正在寻求验证我正在采取的步骤。目前的重点是XSS,所以我不会在这篇文章中涉及数据库。这是我到目前为止所做的:

  1. htmlspecialchars()所有用户输入
  2. 将某些关键字列入黑名单{“”,“”,“text / javascript”}:我正在使用preg_replace将这些字词替换为“”。
  3. 输出转义所有动态内容。
  4. 所有这些似乎都是一个非常简单的安全层。任何人都可以推荐更好的策略吗?

1 个答案:

答案 0 :(得分:1)

你的方法太简单了。 htmlspecialchars在每个环境中都没有多大帮助。

这是一篇关于XSS的非常好的备忘单,以及当你转义将被放入HTML的字符串时会出现什么问题。

https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29

黑名单也有它的缺点。例如,某些浏览器可能会解析

text/javascript

text/java
       script

同样的方式。新的行和空格从后者中删除,因此它被解释为第一个。所以黑名单不会是防弹方法。

最好的策略是使用一些模板库,它已经全部为你处理了这一切。库必须知道字符串的上下文。元素值需要与属性值不同的转义。