php 表单被恶意提交,DedeCMS自定义表单提示88952634恶意提交

DedeCMS经常使用表单来接收或收集用户提交的订单或信息,如果有人恶意攻击网站或者用扫描的方法,由于程序本身对某些字符进行过滤,如果你的表单提交过来的数据全部显示:88952634,就证明收到恶意攻击!

4791a88b7e40787a7fff4523586a95b5.png

应对这样的攻击除了自身服务器的防护外,还可以在DedeCMS本身的diy表单里限制用户同一时间提交表单信息。网上找到这样的应对方法:

找到/plus/diy.php,找到

if(!is_array($diyform))

{

showmsg('自定义表单不存在', '-1');

exit();

}

下面添加代码:

//检测游客是否已经提交过表单 //www.vi586.com

if(isset($_COOKIE['VOTE_MEMBER_IP']))

{

if($_COOKIE['VOTE_MEMBER_IP'] == $_SERVER['REMOTE_ADDR'])

{

ShowMsg('您已经填写过表单啦','-1');

exit();

} else {

setcookie('VOTE_MEMBER_IP',$_SERVER['REMOTE_ADDR'],time()*$row['spec']*3600,'/');

}

} else {

setcookie('VOTE_MEMBER_IP',$_SERVER['REMOTE_ADDR'],time()*$row['spec']*3600,'/');

}

但是这是针对用户本身,也就是运用了浏览器的cookie,但是程序扫描的应该会失效,Safe3WVS扫描器在扫描sql注入漏洞时,post字段内就含有88952634这个数字,

这是利用限制IP达到重复多次提交的目的,用户同一个IP只能一天内只能提交三次,在上面的代码替换成下面代码:

//判断ip,限制预约次数

$intime = date('Y-m-d');

$row_ip = $dsql->getOne("SELECT count(*) as dd FROM `dede_xxxx` WHERE ip like '%{$ip}%' and date like '%{$intime}%'");

if($row_ip['dd'] >= 3) {

echo "

exit();

}

扩展阅读

本文地址:https://www.vi586.com/web/325.html

版权声明:原创文章,版权归重庆SEO吖七所有,欢迎分享本文,支持原创,转载请保留出处

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值