【问题标题】:parametrization in VBScript/ASP Classic and ADOVBScript/ASP Classic 和 ADO 中的参数化
【发布时间】:2008-09-11 20:26:20
【问题描述】:

我在这里有点困惑。据我所知,微软声称参数化是保护数据库免受 SQL 注入攻击的最佳方法。但我在这里发现了两个相互矛盾的信息来源:

This page 表示使用 ADO 命令对象。但是this page 说命令对象对于脚本来说是不安全的。我似乎记得在某处读过,由于安全漏洞,命令对象不应在 VBScript 或 JScript 中使用,但我似乎找不到那篇文章。

我在这里遗漏了什么,或者这两篇文章似乎相互矛盾?

【问题讨论】:

    标签: sql-server asp-classic vbscript ado


    【解决方案1】:

    我在这里可能是错的,但我认为这只是意味着有人可以使用 Command 对象做坏事。 IE。如果其他人正在编写脚本,则不可信。

    请参阅本文中的safe for scripting。每个在线谈论这个短语的实例都会引用它,就好像你正在标记一个 ActiveX 控件,说“这个控件没有 I/O 或只与它来自的服务器对话”,但 Command 对象不这样做。它可以用来做很多可能不安全的事情。

    他们所说的“安全”和防止 SQL 注入的“安全”是两个不同的东西。关于使用 ADO Command 对象对数据进行参数化的文章很贴切。你应该这样做。

    而且,微软在这里进一步证实了这一点:

    http://msdn.microsoft.com/en-us/library/ms676585(v=VS.85).aspx

    【讨论】:

      【解决方案2】:

      我认为“脚本安全”是指“可以安全地从我们刚刚从某个尼日利亚王子那里检索到的网页运行”。命令对象应该可以安全地在服务器上运行。

      不过,在工作中,我的同事们当时并不信任它,所以我们有一个内部框架,基本上可以做同样的事情。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多