这是否为SQL注入打开了大门?

use*_*523 1 sql-injection asp-classic

设置我的var:

Foo = request("Bar")
Run Code Online (Sandbox Code Playgroud)

构建SQL查询:

John.Source = "SELECT ID, Name FROM dbo.USER where Name = '"&Foo&"' and ID = '1'"
Run Code Online (Sandbox Code Playgroud)

我在某个项目中找到了这个,这是否为SQLi打开了大门?

Jam*_*man 7

绝对.request("Bar")将从参数Request.QueryStringRequest.Form集合中取出参数.

这意味着您可以在理论上将以下内容标记为查询字符串:

'; delete * from dbo.USER; select * from user where name='
Run Code Online (Sandbox Code Playgroud)

哪个会给你一个查询

SELECT ID, Name FROM dbo.USER where Name = ''; delete * from dbo.USER; select * from user where name='' and ID = '1'
Run Code Online (Sandbox Code Playgroud)

正如其中一位评论者所说,使用参数化查询代替.

如果这确实不是一个选项,那么一定要转义从Request集合中获取的值.此链接可能有所帮助:http://blogs.iis.net/nazim/archive/2008/04/28/filtering-sql-injection-from-classic-asp.aspx