扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:gaoyuanan 来源:赛迪网技术社区 2007年9月7日
关键字: SQL Server SQL Server 各版本 注入 数据库
从安全角度看合并第二种方法和第三种方法可能是最好的方法——只允许正确的输入,然后搜索输入中已知的错误数据。
带有连接符号的姓名的问题对于体现合并两种方法的必要性是一个好的例子:
Quentin Bassington-Bassington
我们必须在正确输入中允许连接符号,但是我们也意识到字符序列''—''对SQL SERVER很重要。
当合并修改数据和字符序列确认时,会出现另一个问题。例如,如果我们应用一个错误过滤在除去单引号之后去探测''—'',''select''和''union'',攻击者可以输入:
uni''on sel''ect version-''-
既然单引号被除去,攻击者可以简单地散布单引号在自己的错误的字符串中躲避被发现。
这有一些确认代码的例子:
方法一——过滤单引号 以下为引用的内容:
|
方法二——拒绝已知的错误输入
以下为引用的内容:
|
方法三——只允许正确的输入
以下为引用的内容:
|
濡傛灉鎮ㄩ潪甯歌揩鍒囩殑鎯充簡瑙T棰嗗煙鏈€鏂颁骇鍝佷笌鎶€鏈俊鎭紝閭d箞璁㈤槄鑷抽《缃戞妧鏈偖浠跺皢鏄偍鐨勬渶浣抽€斿緞涔嬩竴銆�