2008-10-01 66 views
1

哪种类型的输入最不容易受到跨站点脚本(XSS)和SQL注入攻击。哪种类型的输入最容易受到攻击?

PHP,HTML,BBCode等我需要知道的论坛,我正在帮助朋友建立。

+0

脆弱性到底是什么?黑客?跨站脚本? SQL注入? – wcm 2008-10-01 18:49:32

+0

跨站点拼写和SQL注入。对不起,我想我在问题中提到了它(分心了,当我回来时,我没有检查我写的内容是否提交了提交)。 – Iwasakabukiman 2008-10-01 18:52:53

+0

如果你可以编辑实际的问题并把它放在那里,那将会很棒。你能否通过“输入”来澄清你的意思?我的第一反应是你的意思是什么类型的表单控件是最不易受攻击的,在这种情况下,我不得不说单选按钮! – 2008-10-01 18:55:11

回答

3

我们需要更多地了解您的情况。怎么样脆弱?有些事情你应该总是做的:将它们存储在数据库中不明来源的打印他们回来时给用户以防范SQL注入

  • HTML编码字符串之前

    • 逃亡串,防止恶意的HTML/JavaScript的

    我永远不会执行用户提供的php。 BBCode/UBBCode很好,因为它们被转换为语义正确的html,尽管您可能想要查看与格式错误的图像标签相关的XSS漏洞。如果您允许HTML输入,您可以将某些元素列入白名单,但这将是一个容易出错的复杂方法。所以,鉴于上述所有情况,我会说使用一个好的现成的BBCode库是你最好的选择。

  • 1

    有很多BB代码解析器可以净化HTML等输入。如果没有可用的软件包,那么您可以查看一个开源论坛软件包以获取指导。

    BB代码很有意义,因为它是论坛的“标准”。

    0

    最容易受到攻击的输入是“非输入”。

    你问的是正确的问题吗?

    2

    任何种类的布尔值。

    你甚至可以很容易地过滤无效输入。

    ;-)

    6

    熟悉(我刚刚发布这评论,但似乎没有多少人会下选择列表,单选按钮等的印象不需要消毒。)

    不要指望单选按钮是安全的。您仍然应该清理服务器上的数据。人们可以在他们的本地机器上创建一个html页面,并创建一个与您的单选按钮同名的文本框,并将这些数据回传。

    更高级的用户可以使用像WebScarab这样的代理服务器,并且只需在将参数发布回服务器时对参数进行调整即可。

    一个好的经验法则是总是使用参数化的SQL语句,并总是越狱用户生成的数据将其放入HTML之前。

    0

    为了Odin的缘故,请不要清理输入。不要害怕用户将任何他们想要的东西输入到您的表单中。

    用户输入不是固有的不安全。接受的答案会导致像我的银行这样的网络界面,O'Reilly先生无法开立账户,因为他的名字中有非法字符。什么是不安全的总是如何使用用户输入。

    避免SQL注入的正确方法是使用预准备语句。如果你的数据库抽象层不让你使用这些,严格使用正确的转义函数(myslq_escape et al)。 防止XSS攻击的正确方法永远不会像striptags()那样。转义所有东西 - 在PHP中,类似htmlentities()的东西就是你要找的东西,但它取决于你输出的字符串是HTML文本的一部分,HTML属性还是Javascript内部等。使用正确的工具为正确的上下文。永远不要将用户的输入直接打印到页面上。

    最后,看看Web应用程序的前10个漏洞,并做正确的事情来阻止它们。 http://www.applicure.com/blog/owasp-top-10-2010

    相关问题