什么是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要检查用户的输入的危险人物像单引号;和使用事先准备好的发言稿,这说明数据库正是期望在任何用户提供的数据传递给它。
|
漏洞管理傻瓜
我们的朋友在Qualys的是提供免费的副本,电子版的漏洞管理傻瓜以技术问题解答读者。 漏洞管理傻瓜:
| |






