我根本不知道如何让我的网站完全防范。我有输入,人们可以输入在网站上发布的信息。我应该过滤什么以及如何过滤?
我不应该允许脚本标签吗? (问题是,他们将如何将YouTube嵌入代码放在网站上?)
的iFrame? (人们可以在iFrame中放置不合适的网站......)
请告诉我一些可以预防问题的方法。
答案 0 :(得分:5)
首先,通过严格的XML解析器运行用户的输入 拒绝任何无效的标记。
您应该使用HTML标记和属性的白名单(在解析的XML中)。
不允许<script>
代码,<iframe>
或style
属性。
通过URI解析器(例如.Net的href
类)运行所有URL(src
和Uri
属性),并确保协议为http
,{ {1}},或者https
。同样,拒绝任何无效的网址。
如果您想允许YouTube嵌入,请添加自己的mailto
标记,该标记将URL或视频ID作为参数(内容或属性),并将其转换为服务器上的脚本(验证参数后) )。
完成后,请确保您屏蔽this giant list上的所有内容。
答案 1 :(得分:3)
没有黑客证明这样的东西。你想尽一切可能减少被黑客攻击的可能性。最明显的弱点是防止xss (cross site scripting) hacks和sql injection攻击。有两种简单的方法可以避免这两种方法,最明显的是使用本能地寻求抵御它们的新技术(默认情况下编码的文本输出,执行前的查询转换)等。
如果你需要超越这些水平,有很多自动化的(大多数是模糊的数字,你可以给你的销售人员提供“好”)服务,将你的系统“测试”到硬核分析师将挑选您的系统进行各种审核。
除了上面提到的基础知识(xss和sql注入)之外,你应该尝试获得的安全级别将取决于你的市场。
答案 2 :(得分:3)
没有明确提到这一点,但也使用模糊器(http://en.wikipedia.org/wiki/Fuzz_testing)。
它基本上将随机垃圾(不同字符和长度的字符串)推入输入字段;它被用于行业实践中,它发现了很多错误(即溢出)。
http://www.fuzzing.org/有一系列优秀的模糊测试器供你试用。
答案 3 :(得分:2)
您可以查看ISAAF等渗透测试框架。它为您提供了一个检查列表和方法,用于测试应用程序的重要安全性方面。