代码之家  ›  专栏  ›  技术社区  ›  Sejanus

如何防止ASP/VBScript中的注入?

  •  1
  • Sejanus  · 技术社区  · 16 年前

    ASP(VBScript)中输入处理的最佳方法(或至少最常用的方法)是什么?我主要关心的是HTML/JavaScript注入&SQL注入。是否有一些等效于PHP的 htmlspecialchars addslashes 等等?或者我必须用字符串替换函数之类的手动操作吗?

    2 回复  |  直到 14 年前
        1
  •  5
  •   Tomalak    16 年前

    1. 在将用户输入写入页面之前,始终对其进行HTML编码。 Server.HTMLEncode() 这是为你做的。
    2. ÀDODB.Command ADODB.CommandParameter
    3. 在呈现页面的IIS服务器上始终使用URLScan实用程序和IIS锁定,除非它们是版本6及更高版本,不再需要这些工具。

    奴颜婢膝 ,我想不出有多少地方会出错。

    大多数漏洞源于未正确编码用户输入或从中生成SQL字符串。如果您出于某种原因遇到HTML编码用户输入的阻碍,那么您已经在应用程序中发现了一个设计缺陷。

        2
  •  2
  •   AnthonyWJones    16 年前

    避免在SQL代码中使用字段值的串联。也就是说,在某些情况下,存储过程可能会在字符串中构建一些SQL以随后执行。除非将文本字段值用作其构造的一部分,否则这很好。

    命令参数可以保护设计用于输入值的SQL代码,使其不会被劫持以执行不需要的SQL,但它允许这些不需要的SQL成为数据库中的数据。这是一个第一级的脆弱性。如果在存储过程内的某些SQL字符串连接中使用字段的值,则存在第二级注入漏洞。

    另一个考虑因素是,这只是最低限度的保护。它所做的一切都是使攻击尝试变得无害。然而,在许多情况下,最好在此基础上添加一个系统,以防止此类数据输入和/或改变管理员以应对潜在的注入攻击。