求助:着陆页表单遭入侵,采取措施后攻击仍间歇性复发
排查与解决表单持续垃圾信息攻击的步骤
检查表单提交端点是否被直接调用
攻击者可能已绕过前端页面,直接向表单的PHP处理脚本发送POST请求。可在处理脚本开头添加来源验证:// 验证请求是否来自你的域名 if (!isset($_SERVER['HTTP_REFERER']) || strpos($_SERVER['HTTP_REFERER'], 'your-domain.com') === false) { die('Invalid request'); }注:HTTP_REFERER存在被篡改的可能,建议结合其他验证方式使用。
添加IP级频率限制
针对提交IP设置时间阈值,比如10分钟内最多允许2次提交,超过则拦截:session_start(); $ip = $_SERVER['REMOTE_ADDR']; $current_time = time(); $last_submit = $_SESSION['last_submit'] ?? 0; $submit_count = $_SESSION['submit_count'] ?? 0; if ($current_time - $last_submit < 600 && $submit_count >= 2) { die('Too many requests, please try again later'); } // 更新会话记录 $_SESSION['last_submit'] = $current_time; $_SESSION['submit_count'] = $submit_count + 1;排查服务器隐蔽后门
攻击者可能在服务器留下定时提交脚本,需做以下检查:- 扫描网站目录下近期修改的未知PHP文件、命名异常的脚本
- 查看服务器访问日志,确认提交请求的IP是否固定,或是否来自服务器内部
- 检查Linux服务器的crontab任务,排查未知定时运行项
强化蜜罐防护
确保蜜罐字段通过CSS隐藏(display: none;),且正常用户无法填写,同时在处理脚本中验证:if (!empty($_POST['hidden_honeypot'])) { // 判定为机器人请求,直接终止处理 exit; }若攻击者已识别现有蜜罐,可更换字段名或添加多个蜜罐字段。
彻底校验PHPMailer配置
确认恢复的PHPMailer为官方最新稳定版,同时检查:- 禁用SMTP弱验证机制
- 确保SMTP密码为高强度且未泄露
- 开启SMTP Debug模式,追踪邮件发送请求的触发来源
核查域名与CDN配置
确认着陆页域名未被劫持,CDN规则无异常,避免攻击者通过缓存漏洞绕过防护。
内容的提问来源于stack exchange,提问作者dloj33
相关产品推荐
相关产品推荐

