Sql注入攻击和亚音速

The*_*iot 2 c# subsonic sql-injection

如果我使用SubSonic为我的Web项目创建DAL,我是否需要担心防止SQL注入攻击?

Paw*_*iak 6

不,SubSonic使用参数将数据传递到数据库,它负责这一点.


P a*_*u l 6

这取决于您构建查询的方式.如果不使用参数,完全可以用亚音速编写不安全的查询.

// Bad example:

string sql = "delete from Products where ProductName = " + rawUserInput;
QueryCommand qry = new QueryCommand(sql, Product.Schema.Provider.Name);
DataService.ExecuteQuery(qry);

// Should be:

string sql = "delete from Products where ProductName = @TargetName";
QueryCommand qry = new QueryCommand(sql, Product.Schema.Provider.Name);
qry.AddParamter("@TargetName", rawUserInput, DbType.String);
DataService.ExecuteQuery(qry);
Run Code Online (Sandbox Code Playgroud)