什么是SQL注入攻击/弱点?

这种常见问题的答案是书面的k4thryn :

阿SQL注入漏洞时,可能会发生欠佳的书面程序使用用户提供的数据在数据库中查询而不首先验证输入。 这是最经常发现在网页的动态内容。 有一些优秀的教学课程和说明性文章关于这个问题,以及许多漏洞张贴针对不同的应用充分披露的网站。

一个简单的例子的SQL注入是一种基本的HTML表单登录在您提供的用户名和密码:


	  <form method="post" action="process_login.php"> 
	  <input type="text" name="username"> 
	  <input type="password" name="password"> 
	  “ /表格” 

鉴于这一片段的HTML ,我们可以推断,最简单的(和最差)为脚本“ process_login.php ”工作将是它建立和执行数据库查询看起来像这样:

	  “选择编号 
	 从登录 
	 其中username = ' $ UserName '的 
	 和password = ' $密码“ ; 

在这种情况下,如果变量“ $的用户名”和“ $密码”是直接从用户的输入,登录脚本可以很容易地欺骗,认为有效的密码提供了玩的语法SQL语句。 假设以下字符串提供的密码:

	  '或'' = ' 

我们给“鲍勃”作为用户名。 一旦变量插值,上述查询将如下所示:

	  “选择编号 
	 从登录 
	 其中username = '鲍勃 
	 和password = ''或'' = '' “ ; 

此查询将返回行,因为最后条款:

	  ... 或'' = '' 

将永远评价为true (空字符串总是等于空字符串) 。

防止SQL注入攻击

最常用的方法,以防止这种SQL注入vunerability要检查用户的输入的危险人物像单引号;和使用事先准备好的发言稿,这说明数据库正是期望在任何用户提供的数据传递给它。

SQL Server安全 掌握SQL Server 2000安全 SQL Server安全蒸馏水 甲骨文安全手册:实施全面有效的安全计划在您的Oracle环境
购买这些优秀的书籍在SQL安全在Amazon.com


最常见的5个免费网络工具

漏洞管理傻瓜

我们的朋友在Qualys的是提供免费的副本,电子版的漏洞管理傻瓜以技术问题解答读者。

漏洞管理傻瓜:

  • 说明了迫切需要的漏洞管理
  • 详细介绍了基本最佳实践步骤,一个成功的脆弱性管理程序
  • 概述了各种漏洞管理解决方案-包括优点和缺点每个
  • 聚焦屡获殊荣的QualysGuard漏洞管理解决方案
  • 提供了一个10点的清单,消除安全漏洞从您的关键资源
书签什么是SQL注入攻击/弱点?

最新的博客帖子


英文 英文 德语 德语 西班牙语 西班牙语 法文 法文 意大利语 意大利语 葡萄牙语 葡萄牙语 俄文 俄文 荷兰文 荷兰文
希腊语 希腊语 印地文 印地文 日语 日语 韩文 韩文 中文 中文 中文(简体) 中文(简体) 阿拉伯语 阿拉伯语

版权所有2009年技术常见问题解答 保留所有权利。 隐私政策。