由于存储过程中存在用于字符串连接的 + 号连接SQL语句,这就造成SQL注入的可能性.
下面一个例子:
PR_UserManage_Users_BatchMove
CREATE PROCEDURE [dbo].[PR_UserManage_Users_BatchMove]
(
@UserType int = 1,
@GroupId NVarChar(500) =”,
@UserId NVarChar(4000) = ”,
@UserName NVarChar(255) = ”,
@StartUserId int = 0,
@EndUserId int = 0,
@BatchUserGroupId NVarChar(500) =”
)
AS
BEGIN
SET NOCOUNT OFF
If (@UserType = 1)
BEGIN
EXEC(’Update PE_Users set GroupID= ‘ + @GroupId +’ Where UserID in (’ + @UserId + ‘)’)
END
Else If(@UserType = 2)
BEGIN
EXEC(’Update PE_Users set GroupID= ‘ + @GroupId +’ Where UserName in (”’ + @UserName + ”’)')
END
Else If(@UserType = 3)
BEGIN
EXEC(’Update PE_Users set GroupID= ‘ + @GroupId +’ Where UserId between ‘ + @StartUserId + ‘ and ‘ + @EndUserId)
END
Else If(@UserType = 4)
BEGIN
EXEC(’Update PE_Users set GroupID= ‘ + @GroupId +’ Where GroupID in (’ + @BatchUserGroupId + ‘)’)
END
END
可以看出,在用户名的地方,没有过滤直接放入查询.
调用地方:
public bool MoveByUserName(string userName, int groupId)
{
Parameters parmsForUsers = new Parameters();
parmsForUsers.AddInParameter("@UserType", DbType.Int32, 2);
parmsForUsers.AddInParameter("@UserName", DbType.String, userName);
parmsForUsers.AddInParameter("@GroupId", DbType.Int32, groupId);
return DBHelper.ExecuteProc("PR_UserManage_Users_BatchMove", parmsForUsers);
}利用过程:
用户管理,批量移动
指定用户名 这里加入SQL注入语句
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
字符串 'jax')' 后的引号不完整。
'jax')' 附近有语法错误。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.SqlClient.SqlException: 字符串 'jax')' 后的引号不完整。
'jannock')' 附近有语法错误。
解决方案:
由于调用时不注意,可能造成危险,所以类似于这类的存储过程,应写在程序外面,便于过滤和发现,不要写在存储过程中。
联系人:李经理 QQ738729991...
怎么偷偷关联微信(黑科技远程偷看微信记录),被微信删除的密友怎样规复?你是不是一怒之下删除了微信密友,不得已才规复?我过去也碰到过相似的环境。删除一段光阴真的非常酷。修复它是极端难题的。不过,有非常多...
最后了解不要打扰对方通过微信检查对方的位置记录查询软件当你想念一个人的时候,你能修复它吗?总有人认为如果你拥有了它,你就不会失去它,所以你会变得肆无忌惮;不惊动对方通过微信查对方位置1.失踪的人能得救...
查住宿信息,如何查自己住宿记录!专业盗取微信密码,开房查询,通话记录查询,查询微信聊天记录,非常靠谱!导言:整个宋代郑店的史书中没有记载,但据"东京孟华志"记载,东京扁梁市有72家正规商店,这72家大...
黑客是神秘的,而且他们也有种类之分。有的黑客专门靠接单为生,他们以接单为收入;有写黑客只是因为兴趣而当黑客……那么如何找到这些专业接单的黑客呢?其实啊,那些专门靠接单为收入的黑客是有专门的平台的,这就...
大数据时代,企业可通过网络平台收集用户信息,从而实现精准化营销。但这些信息又从何而来呢?生活中大家会使用各种APP来满足自己的需求,但在使用APP前都会弹出一个小窗口,上面有一些列的用户协议,同意才能...