动态sql sp_executesql/execute(@sql)暗藏杀机

howyougen 2002-09-30 02:08:10
形如如下的脚本:
declare @sql nvarchar(1000)
set @sql='select '+@sql
exec sp_executesql @stmt=@sql
只是想简单的把一个结果返回给客户端
@sql=' 1+1'
但是这里有一个严重的安全问题!
比如
@sql=' 1+1 delete myuser'
将会删除myuser表的全部信息
除了select外,有没有其它的将信息较安全的返回给客户端的办法?
(print是不行的,我试了)
...全文
46 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
howyougen 2002-09-30
  • 打赏
  • 举报
回复
微软应该提供一个判断字符串内是否存在系统任何关键字的函数
zqllyh 2002-09-30
  • 打赏
  • 举报
回复
只能再加判断了,只处理出现SELECT的语句。。。。
saucer 2002-09-30
  • 打赏
  • 举报
回复
there is no safe way, when you allow people to enter straight SQL statements, you basically have given the securities away

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧