thinkphp where SQL注入 不太理解

时间:2022-08-04 03:38:59
$id=$_GET["id"];
 $rst=M("type")->where("id=".$id)->find();

以上这段代码,说可以SQL注入,我试过id 随便赋值,或者给id=select * from config 等参数,结果页面上并没有输入任何东西,这段代码,到底怎么可以SQL注入?

3 个解决方案

#1


给$id 赋值为 1 or 1=1 就绕过了

#2


引用 1 楼 youbl 的回复:
给$id 赋值为 1 or 1=1 就绕过了

我传了你给的参数,把SQL语句打出来了,在数据库中搜了一下,是可以出来数据的,但是页面上还是什么都不显示,它这样绕过了又能怎么样?根本没影响啊?情详细解答一下。

#3


也许THINKPHP 内部已经做了处理.
如果原生的, 都要把$id转换一下, 若是数值的, 用intval或 floatval, 若是字符的,把单引号转义一下. 

#1


给$id 赋值为 1 or 1=1 就绕过了

#2


引用 1 楼 youbl 的回复:
给$id 赋值为 1 or 1=1 就绕过了

我传了你给的参数,把SQL语句打出来了,在数据库中搜了一下,是可以出来数据的,但是页面上还是什么都不显示,它这样绕过了又能怎么样?根本没影响啊?情详细解答一下。

#3


也许THINKPHP 内部已经做了处理.
如果原生的, 都要把$id转换一下, 若是数值的, 用intval或 floatval, 若是字符的,把单引号转义一下.