当前位置:首页 > 技术教程 > dede技术教程 > 正文内容

DedeCMS织梦自定义表单提示88952634恶意提交

访客4年前 (2020-11-16)dede技术教程8968

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

应对这样的攻击除了自身服务器的防护外,还可以在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 "<script>alert('您今天的次数已经到达上限,欢迎明天前来!'); window.location.href=''";    exit();}
声明:
本站大部分资源收集于网络,只做学习和交流使用,版权归原作者所有。
若您需要使用非免费的软件或服务,请购买正版授权并合法使用!
本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理!

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。