WEB开发网
开发学院数据库MSSQL Server SQL概述及在网络安全中的应用(上) 阅读

SQL概述及在网络安全中的应用(上)

 2007-05-19 09:43:22 来源:WEB开发网   
核心提示: 2.2测试过程用一个单引号和一个SQL关键字(比如“WHERE”)替代每一个参数的值(argument),每个参数都应该被单独地测试,SQL概述及在网络安全中的应用(上)(2),不止那样,当你测试一个参数的时候,记得总是用完整的参数行,并且除了你正在检测的那个参数外

2.2测试过程

用一个单引号和一个SQL关键字(比如“WHERE”)替代每一个参数的值(argument),每个参数都应该被单独地测试,不止那样,当你测试一个参数的时候,应该保持其它的参数不变,并用有效的数据填充它们的值(argument),It can be tempting to just delete all of the stuff that you're not working with in order to make things look simpler, particularly with applications that have parameter lines that go into many thousands of characters.

当你测试一个参数是否能被SQL注射的时候,如果忽略了其它参数或者给他们一个错误的值(argument),网络请求就有可能由于其它原因而出错,这阻碍了你判断SQL注射是否可行。比如,让我们假设以下是一个有效的,纯粹的(unaltered)参数行:

ContactName=Maria%20Anders&CompanyName=Alfreds%20Futterkiste

并且它返回一个ODBC错误:

ContactName=Maria%20Anders&CompanyName='%20OR

如果我们这样检测:

CompanyName='

可能只会给你一个错误告诉你需要指定一个ContactName值。

这行:

ContactName=BadContactName&CompanyName='

可能返回同样的页面,因为请求根本没有指定ContactName。或者,它可能返回你站点默认的主页。或者,可能它找不到指定的ContactName,或者web程序认为没有必要看CompanyName,所以它甚至根本不把这个参数值认为是一个SQL声明,或者,它可能给你一些完全不同的东西,所以,当检测SQL注射的时候,记得总是用完整的参数行,并且除了你正在检测的那个参数外,还要给其它所有的参数一个合法的值。

2.3分析结果

上一页  1 2 3 4 5 6  下一页

Tags:SQL 概述 网络安全

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