如何测试WEB应用程序防止SQL注入攻击

发表于:2013-8-09 11:46

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:钟彩红    来源:51Testing软件测试网原创

#
SQL
分享:

  摘要:

  在WEB应用程序的软件测试中,安全测试是非常重要的一部分,但常常容易被忽视掉。在安全测试中,防止SQL注入攻击尤其重要。本文介绍了SQL注入攻击产生的后果以及如何进行测试。

  关键字:安全测试 SQL 注入攻击 防火墙

  正文:

  WEB应用程序的安全测试,防止SQL注入攻击,下面举一些简单的例子加以解释。——Inder P Singh。

  许多应用程序运用了某一类型的数据库。测试下的应用程序有一个接受用户输入的用户界面,这些输入值用来执行下列任务。

  给用户显示相关的存储数据。例如,程序通过用户输入的登录信息检查用户凭证(权限),从而只显示相关的功能和数据。

  将用户输入的数据存储到数据库中。例如,用户填写了一张表格并提交,程序立即将之存储到数据库中;从而,用户可以在本次会话和下次会话中获取这些数据。

  一些用户输入值可能会被接下来程序将执行的SQL语句运用到,而程序有可能不会正确执行用户输入的值。如果是这样的话,蓄意用户可以向程序提供非法数据,这些数据接下来被运用到框架中并且用来在数据库中执行SQL语句。这就是SQL注入。该行为的结果令人鸣起警钟。

  SQL注入可能导致以下结果:

  用户可以以另一用户的身份登录到程序,甚至是管理员的身份。

  用户可以看到其他用户的隐私信息,如其他用户的简介细节,交易细节。

  用户可以修改应用程序配置信息以及其他用户的数据。

  用户可以修改数据库的结构,甚至是删除应用数据库中的表格。

  用户可以控制数据库服务器并且按照自己意愿随意执行命令。

  因为允许SQL注入的结果是相当严重的,所以在应用程序的安全测试阶段应对SQL注入进行测试。通过对SQL注入技术有一个总体的概括,让我们来理解一些SQL注入的实际例子!

  重点:SQL注入问题只能在测试环境中测试

  若应用程序页面有登录功能,程序有可能使用如下所示的动态SQL语句。这条语句本应从用户表中返回至少一条用户详细信息作为结果,当SQL语句中含有输入的用户名和密码时。

SELECT * FROM Users WHERE User_Name = ‘” & strUserName & “‘ AND Password = ‘” & strPassword & “’;”

21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • yangdanjun
    2013-8-10 21:34:00

    谢谢分享,对于sql注入进行了比较通俗易懂的解释

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号