失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 网站出有关问题了 有漏洞 今天来这里请csdn的兄弟帮忙解决

网站出有关问题了 有漏洞 今天来这里请csdn的兄弟帮忙解决

时间:2024-08-06 16:14:24

相关推荐

网站出有关问题了 有漏洞 今天来这里请csdn的兄弟帮忙解决

后端开发|php教程

nbsp,id,select,sql,POST

后端开发-php教程

网站出问题了,有漏洞,今天来这里请csdn的兄弟帮忙解决

我做了个保健品站 这两天有点问题,用360一扫,高危,只有49分,报告如下:

云购源码破解版,ubuntu下cp命令,中国慕课爬虫,php gdbinit,权威seo电话lzw

手机网页聊天室源码下载,ubuntu algs4,爬虫制作过程,php compact,小浪seolzw

第一个是很严重的问题,今天想把第一个问题解决了。

看下360给出的意见

-16的源码,vscode 表达式,acer ubuntu下载,访问tomcat网址,sqlite字符串排序,集搜客爬虫样例映射,伪代码 php,龙岩天猫seo,儿童 网站模板,网页特效代码简单,html文本框模板lzw

我不知道怎么改,希望大家帮忙解决下。

——解决方案——————–

$id=”;

if(!empty($_POST[‘id’])){

for($i=0; $i<count($_POST[id]);$i++){

$id=$id.($_POST[‘id’][$i].’,’);

}

$id=substr($id,0,strlen($id)-1);//去除最后面的”,”

}

$sql=”select * from zzcms_main where id in ($id)”

他认为你未经检查就在 sql 指令中使用了传入的数据

——解决方案——————–

SQL注入的原理是,从地址栏或者表单中注入

如果你从地址栏得到一个$_GET[“a”],不经过过滤就直接使用到程序中,就会造成威胁。比如:

如果$_GET[“a”]=1;那么:

$sql = “SELECT * FROM AA WHERE id =$_GET[“a”]”;就是$sql = “SELECT * FROM AA WHERE id =1”;

但如果别人通过地址栏自行修改,把$_GET[“a”]的值改为1 or (and) XXX各类代码,那这个查询语句就变成

$sql = “SELECT * FROM AA WHERE id =1 or(and) xxx”;

于是就中招了。

所以地址栏和表单得到的参数,一定要格式化,过滤好,指定是什么类型,多长,限制哪些字符……

——解决方案——————–

$sql=”select * from zzcms_main where id in ($id)” ;

$id沒有進行過濾,用戶輸入什麼都可以,當然被注入了。

因為id只能是數字,所以可以用intval轉成數字,如果非數字會轉為0,這樣就注入不到了。

——解决方案——————–

传入的数据把单引号替换为两个连续的单引号 , sql语句用传入的参数时加上单引号。

$id = str_replace(“‘”,”””,$_POST[‘id’]);

$sql = ” select * from tb_user wher id=’$id’ “;

这样就不怕注入了。

——解决方案——————–

if(!empty($_POST[id])) {

$id = join(,, array_map(intval, $_POST[id]));

}

最好把 $id 换个名字

如果觉得《网站出有关问题了 有漏洞 今天来这里请csdn的兄弟帮忙解决》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。