这几天在看的一本《黑客Web脚本攻击与防御技术狠心剖析》中提到提高数据库安全性的一些方法,其中写到
:“
另外还有一些更彻底的删除方法,语句如下:
use master
exec sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'
exec sp_addextendedproc xp_enumgroups,@dllname='xplog70.dll'
……
exec sp_addextendedproc xp_fixeddrives,@dllname='xpstar.dll'
go

我不明白的是sp_addextendedproc不是用来向数据库注册存储过程吗?这里是书上印错了还是有什么原理?求各位大神指教!!!

解决方案 »

  1.   

    黑客可能利用這個存儲過程來註冊他們寫在DLL裡的代碼為存儲過程,然後就為所欲為咯.
      

  2.   

    创建扩展存储过程后,必须使用 sp_addextendedproc 将此存储过程添加到 SQL Server 
      

  3.   

    http://technet.microsoft.com/zh-cn/library/ms188379%28SQL.90%29.aspx
      

  4.   


    这个我也去查过MSDN,了解是创建,不过书上那部分讲的是修改,删除数据库的存储过程,那么书上算是写错了吗?
      

  5.   

    想请教,本身msater里面已经有xp_cmdshell等扩展存储过程,那么执行exec sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'等语句会有什么效果?这是怎样实现提高安全性?谢谢
      

  6.   


    已經存在,不用加了,加會有提示已存在別想太複雜,就是把DDL文件添加到SQL里,SQL里當存儲過程調用。DDL由程序生成