相关疑难解决方法(0)

参数化查询如何帮助SQL注入?

在查询1和2中,文本框中的文本都插入到数据库中.这里参数化查询的意义是什么?

1.> -------------

SqlCommand cmd = new SqlCommand("INSERT INTO dbo.Cars " +"VALUES(@TagNbr);" , conn);
cmd.Parameters.Add("@TagNbr", SqlDbType.Int);
cmd.Parameters["@TagNbr"].Value = txtTagNumber.Text;
Run Code Online (Sandbox Code Playgroud)

2.> --------------

int tagnumber = txtTagNumber.Text.ToInt16(); /* EDITED */
INSERT into Cars values(tagnumber.Text); /* then is it the same? */
Run Code Online (Sandbox Code Playgroud)

此外,在这里我将使用正则表达式验证来停止插入非法字符.

.net c# sql sql-server-2005 parameterized-query

52
推荐指数
4
解决办法
4万
查看次数

如何在Oracle上进行SQL注入

我正在对一个系统进行审计,开发人员坚持认为这是一个SQL注入证明.这是通过在登录表单中删除单引号来实现的 - 但后面的代码没有参数化; 它仍然使用文字SQL,如下所示:

username = username.Replace("'", "");
var sql = "select * from user where username = '" + username + "'";
Run Code Online (Sandbox Code Playgroud)

这真的很安全吗?是否有另一种插入单引号的方法,可能是使用转义字符?正在使用的DB是Oracle 10g.

oracle sql-injection oracle10g

4
推荐指数
1
解决办法
2634
查看次数