php – 40’OR’1’=’1这很容易被sql注入?
发布时间:2020-12-13 22:01:39 所属栏目:PHP教程 来源:网络整理
导读:我开发了一个简单的sql注入研究应用程序,我搜索速率 40并且检索所有速率低于40的名称,但是当我将搜索作为40'或'1'='1时 所以它从数据库表中检索所有记录 我知道如何解决这个问题,但我不知道40’OR’1’=’1当我传递40时这个陈述如何工作’或’1’=’1任何人
我开发了一个简单的sql注入研究应用程序,我搜索速率< 40并且检索所有速率低于40的名称,但是当我将搜索作为40'或'1'='1时
所以它从数据库表中检索所有记录 我知道如何解决这个问题,但我不知道40’OR’1’=’1当我传递40时这个陈述如何工作’或’1’=’1任何人都可以简单地告诉我当我通过40时会发生什么搜索框中’或’1’=’1? 希望快速积极的回应…… <?php include("conn.php"); $get_rate = $_GET['rate']; $query = "select * from `sqlinjection`.`products` WHERE `products`.`rate` < '".$get_rate."'"; $result=mysql_query($query); if($result == false) { die(mysql_error()); } while($row=mysql_fetch_array($result)) { echo "Name".$row['srno']."<br/>"; echo "Name".$row['name']."<br/>"; echo "Rate".$row['rate']."<br/>"; } ?> 解决方法
这正是SQL Injection的工作原理
想象一下对数据库的查询.通常它会是这样的: select * from products where productID = '[some parameter]' 但在你的情况下,因为参数来自用户,并且该用户输入了40’OR’1’=’1你剩下的: select * from products where productID = '40' OR '1'='1' 如果1 = 1,它将选择所有内容 防止这种情况的最佳方法是使用参数化查询. Excellent article. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |