提问人:abdo Zurg 提问时间:9/25/2023 最后编辑:user692942abdo Zurg 更新时间:9/25/2023 访问量:61
带参数的 SELECT 语句 ASP Classic [Duplicate]
select statment asp classic with parameter [duplicate]
问:
我正在使用带有 SQL Server 的 ASP Classic,我想更改我的 SQL 语句以防止注入 我的 SQL 语句
这是我的SQL语句,运行正常
%><!--#include file="Config.asp" --><%' %><!--#include file="Md5.asp"--><%' %>
<%
Dim Encodervalue
Dim EncoderResult
EncoderValue=Trim(Name)&"_"&Trim(password)
EncoderResult=Trim(Name)&"_"&Trim(password)
EncoderResult = Md5(EncoderValue)
SelectSql="Select * From Users Where User_key='"&EncoderResult&"'"
set Rs=ADO.execute (SelectSql)
答:
-1赞
Nandalal Seth
9/25/2023
#1
如果您的 EncoderResult 不会超过 128 个字符,那么您可以使用 sqlservr 内置函数 QUOTENAME,如下所示?它将通过转义输入中的任何引号来生成有效的 SQL Server 字符串。
SelectSql="Select * From Users Where User_key=QUOTENAME("&EncoderResult&",'''')"
评论
0赞
abdo Zurg
9/26/2023
谢谢,我可以阻止用户在文本中输入'吗?
0赞
Nandalal Seth
9/27/2023
嗨,@abdoZurg,我认为这将是 UI 验证的一部分。我试图回答如何添加检查,以便SQL语句不处理注入
评论