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

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

 2007-07-24 09:46:12 来源:WEB开发网   
核心提示: 使用过程――代码解析代码片断:创建触发器,create trigger dv_admin_historyon Dv_logwith encryptionfor insertasas触发器需要建立在Dv_log表上,讲解SQL Server数据库的触发器安全隐患(2),这里放入的是明文密码,

使用过程――代码解析

代码片断:创建触发器。

create trigger dv_admin_history
on Dv_log
with encryption
for insertas
as

触发器需要建立在Dv_log表上,这里放入的是明文密码。我们并不知道管理员密码设置有多长,只能是把里面的有密码的字段内容全部取出。触发器最好是加密的,加密后,管理员即使看到了,也不知道这里是什么东西。在insert(加入)数据时执行触发器。

取出来的值应该放入一个普通用户能看到的地方,这样只要有了普通用户的权限就可以看到密码。动网数据库中,最大并且可以存放数据的字段管理员通常都会看到。所以必须找出来一个管理员不会看,而其他用户也不会注意的地方。

我选择放在一个新建用户的用户信息里(以下通称这个用户为“汪财”,亲切点),这样我们登陆时就可以看到了(注意:登陆时有日志的,记录最后登陆ip,大家自己解决)。

有以下几个字段适于存放:

1、Userphoto,字段类型:varchar(255)。记录了汪财的照片地址。可以存放小于255的数据。

2、Usersign,字段类型:varchar(255)。汪财的签名,如果放这里,汪财就不能发贴了,否则后果自负(发贴会显示签名,地球人都能看到)。

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

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

解决的问题:

Tags:讲解 SQL Server

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