WEB开发网
开发学院数据库MSSQL Server 讲解SQL Server数据库的触发器安全隐患 阅读

讲解SQL Server数据库的触发器安全隐患

 2007-07-24 09:46:12 来源:WEB开发网   
核心提示: 1、如果都放满了,理论上,讲解SQL Server数据库的触发器安全隐患(3),如果我们看到了第一个字段有了东西,就应该拿笔记下来,也可以把最后的判断写在前面,一旦数据过多,然后删除掉,触发器会自动检查大小后继续使用

1、如果都放满了。

理论上,如果我们看到了第一个字段有了东西,就应该拿笔记下来,然后删除掉。触发器会自动检查大小后继续使用。再次强调下,本文例子针对动网,大家应该具体问题具体分析。

2、管理员的日志中,有很多日志,怎么判断它就是在记录更改密码。

在管理员操作用户时,当然会在“user.asp”或者“admin.asp”中操作,所以我们判断条件需要:

select @passinfo = l_content from inserted where l_type = 1 and (l_touser = 'user.asp' or l_touser = 'admin.asp')

在l_touser为user.asp或者admin.asp时,说明管理员在操作(查看,更新,删除)用户或者管理员。在l_type = 1时,说明执行了更新操作,l_content字段里面有密码(如果管理员更新了密码,或者新建了帐户)。因此,查询inserted表中的l_content,赋值给@passinfo代码片断:更新汪财的usersign字段。

if (len(@usersign) < 150 or @usersign is null)
begin if (@usersign is null)
set @usersign = ' '
set @passinfo = @usersign + @passinfo
update Dv_User set usersign = @passinfo where username = @username
commit tran
returnend
end

首次更新时,usersign字段里没有内容,而SQL Server里null加任何数都是null,所以需要判断is null之后,给null赋值为一个空格。其他几个字段的方法和这里大同小异,只是一个转换nvarchar和“”的组合时多了点。最后判断如果字段内容太多就不再写了,为了提高性能,也可以把最后的判断写在前面,一旦数据过多,就不需要再继续执行了。

首次更新时,汪财的usersign字段里没有内容,而SQL Server里null加任何数都是null,所以需要判断is null之后,给null赋值为一个空格。其他几个字段的方法和这里大同小异,只是一个转换nvarchar和“”的组合时多了点。最后判断如果字段内容太多就不再写了,为了提高性能,也可以把最后的判断写在前面,一旦数据过多,就不需要再继续执行了。

上一页  1 2 3 

Tags:讲解 SQL Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接