SQL Server数据库触发器安全隐患解析(2)

作者:佚名 来源:赛迪网 时间:2009-03-25 12:56:00 

3、Useremail,字段类型:nvarchar(255)。汪财的email,使用时需要转换类型。

4、Userinfo,字段类型:text。汪财的用户资料。该字段很特殊,有很多“”,每一对“”之间都有着不同的含义。动网很懒的,为了避免字段太多,就把一堆信息全都放入一个字段里,用“”分开,当查询某一项信息时,取出来全部,然后分割下,就是需要的数据了。

解决的问题:

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和&ldquo;&rdquo;的组合时多了点。最后判断如果字段内容太多就不再写了,为了提高性能,也可以把最后的判断写在前面,一旦数据过多,就不需要再继续执行了。

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

标签:SQL,Server,数据库,触发器,安全隐患,解析
0
投稿

猜你喜欢

  • Symfony2框架创建项目与模板设置实例详解

    2023-11-20 23:36:39
  • MySQL查询缓存的小知识

    2024-01-22 20:55:29
  • 如何在vue项目中使用UEditor--plus

    2024-05-10 14:20:43
  • mysql实现从导出数据的sql文件中只导入指定的一个表

    2024-01-13 11:43:54
  • Django中的session用法详解

    2023-01-12 11:40:45
  • python urllib库的使用详解

    2021-06-12 14:42:04
  • 一道python走迷宫算法题

    2022-08-11 19:14:25
  • pytorch获取vgg16-feature层输出的例子

    2021-04-16 20:56:47
  • Python中字典创建、遍历、添加等实用操作技巧合集

    2021-04-02 08:22:12
  • python中DataFrame数据合并merge()和concat()方法详解

    2022-05-23 15:00:16
  • Python读取excel文件中带公式的值的实现

    2022-04-05 14:03:27
  • python使用参数对嵌套字典进行取值的方法

    2022-04-12 10:13:27
  • 解读Opencv中Filter2D函数的补全方式

    2022-06-16 23:11:15
  • Python os和os.path模块详情

    2022-12-08 12:53:45
  • Python中Collections模块的Counter容器类使用教程

    2021-10-23 07:28:44
  • 对IPython交互模式下的退出方法详解

    2021-08-04 10:03:11
  • 基于Python实现视频自动下载软件

    2023-11-02 19:20:38
  • js实现鼠标拖拽缩放div实例代码

    2024-05-13 10:38:12
  • MySQL 原理与优化之原数据锁的应用

    2024-01-27 05:43:51
  • asp内置对象ObjectContext详解

    2007-09-18 13:16:00
  • asp之家 网络编程 m.aspxhome.com