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

Sej*_*nus 1 vbscript code-injection input-filtering asp-classic

ASP(VBScript)中用于输入处理的最佳方式(或至少是最常用的方法)是什么?我主要关心的是HTML/JavaScript注入和SQL注入.是否有一些等同于PHP htmlspecialcharsaddslashes等等?或者我必须手动执行字符串替换功能吗?

Tom*_*lak 5

底线是这个:

  1. 在将用户输入写入页面之前,始终对其进行HTML编码.Server.HTMLEncode()为你这样做.
  2. 始终使用参数化查询与数据库进行交互.这里ÀDODB.CommandADODB.CommandParameter对象是正确的选择.
  3. 始终在呈现页面的IIS服务器上使用URLScan实用程序和IIS锁定,除非它们是版本6及更高版本,不再需要这些工具.

如果你坚持点1和2 亦步亦趋,我想不出太多可能出错.

大多数漏洞来自未正确编码用户输入或从中构建SQL字符串.如果由于某种原因,HTML编码用户输入阻碍了您,那么您在应用程序中发现了一个设计缺陷.