我根本不知道如何让我的网站防黑客攻击。我有输入,人们可以输入信息,然后发布到网站上。我应该过滤什么以及如何过滤?
我应该不允许脚本标记吗?(问题是,他们将如何将YouTube嵌入代码放到网站上?)
iFrame?(人们可以在iFrames中放置不合适的网站...)
请告诉我一些方法,我可以防止问题。
发布于 2011-03-27 10:34:43
首先,通过一个严格的XML解析器运行用户的输入。
拒绝任何无效的标记。
您应该使用HTML标记和属性的白名单(在解析的XML中)。
不允许<script>
标记、<iframe>
%s或style
属性。
通过URI解析器(例如.Net的Uri
类)运行所有URI (href
和src
属性),并确保协议为http
、https
或mailto
。同样,拒绝任何无效的URL。
如果您希望允许嵌入YouTube,可以添加您自己的<youtube>
标签,该标签接受URL或视频ID作为参数(内容或属性),并将其转换为服务器上的脚本(在验证参数后)。
完成后,请确保您阻止了this giant list上的所有内容。
发布于 2011-03-27 10:42:50
没有黑客证据这回事。你想尽你所能来降低被黑客攻击的可能性。最明显的弱点将是阻止xss (cross site scripting) hacks和sql injection攻击。有一些简单的方法可以避免这两种情况,最明显的是使用本能地阻止它们的新技术(默认编码的文本输出,执行前的查询转换)等。
如果您需要超越这些级别,有许多自动化的(主要是模糊的数字,您可以给您的销售人员在他们都是“好”的)服务,它们将“测试”您的系统到核心分析师,他们将挑选您的系统进行各种审计。
除了上面提到的基础知识(xss和sql注入)之外,您应该尝试和获得的安全级别将真正取决于您的市场。
发布于 2011-03-27 11:32:15
我没有明确提到这一点,但也使用了fuzzers ( http://en.wikipedia.org/wiki/Fuzz_testing )。
它基本上是将随机的垃圾(不同字符和长度的字符串)推入您的输入域;它在工业实践中使用,它发现了许多错误(即。溢出)。
http://www.fuzzing.org/有一个很棒的fuzzers列表供你尝试。
https://stackoverflow.com/questions/5446833
复制相似问题