You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP Classic+SQL Server:修改查询语句防范SQL注入

在ASP Classic中防范SQL注入的SQL查询改造方案

要解决ASP Classic+SQL Server的SQL注入问题,最可靠的方式是改用参数化查询,替换原有的字符串拼接SQL写法。以下是改造后的完整代码及关键说明:

改造后的代码

<!--#include file="Config.asp" -->
<!--#include file="Md5.asp"-->
<%
Dim Encodervalue, EncoderResult
EncoderValue = Trim(Name) & "_" & Trim(password)
EncoderResult = Md5(EncoderValue)

' 初始化参数化查询对象
Dim cmd, Rs
Set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = ADO ' 复用Config.asp中定义的数据库连接对象
cmd.CommandText = "Select * From Users Where User_key = ?" ' 使用?作为参数占位符

' 绑定参数:指定类型、输入方向、长度和值
cmd.Parameters.Append cmd.CreateParameter("@UserKey", adVarChar, adParamInput, 32, EncoderResult)

' 执行查询获取记录集
Set Rs = cmd.Execute
%>

关键说明

  • 替换字符串拼接为ADODB.Command参数化查询:参数化查询会由数据库引擎自动处理特殊字符转义,从根源上杜绝SQL注入风险。
  • 参数类型与长度匹配:MD5加密结果为32位十六进制字符串,因此参数类型设为adVarChar,长度指定为32,确保数据匹配且高效。
  • 常量兼容处理:如果你的环境未自动加载ADO常量,需手动添加以下定义(可放在Config.asp中):
    Const adVarChar = 200
    Const adParamInput = 1
    

内容的提问来源于stack exchange,提问作者abdo Zurg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 20:56:08