做网站的,迟早会遇到这么一天:早上起来发现网站打不开,或者打开后跳到一个不认识的页面,再不然就是搜索引擎里被标了“危险网站”。别慌,这种事有套路可循。按“先止血、再查因、后加固”的顺序走,大部分情况都能在一天内恢复。
一、先判断是什么类型的攻击
对症下药前得先看清楚症状:
| 现象 | 大概率是 |
|---|---|
| 带宽跑满、CPU内存飙升、整站卡死 | DDoS或CC流量攻击 |
| 页面被改、挂了不明链接、跳转赌博色情站 | 程序被入侵、留了后门 |
| 域名解析被改、访问到了别人家服务器 | DNS被劫持或域名被盗 |
| 后台能进但数据不对、订单丢失 | 数据库被拖或篡改 |
二、黄金一小时:先止血
这时候“快”比“准”重要。目标是先把损失摁住。
- 备份现场:别一上来就覆盖。先用
tar打包网站目录、用mysqldump导出数据库,把被攻击时的样子留着,后面溯源要用。 - 切流量:如果是流量攻击,立刻把域名解析切到高防IP或者CDN节点,让清洗后的正常流量才回源站,同时把源站真实IP藏起来。
- 临时关非必要端口:在防火墙里把SSH、FTP这些用不着的端口先关掉,只留Web端口,缩小被咬的面。
- 有干净备份就回滚:要是确认是被改了程序,而且手里有没被污染的备份,直接还原最快。
三、止血之后:找准病根
不找到入口,恢复了也很快再被攻进来。重点看三处:
- Web日志:
tail -f /var/log/nginx/access.log看有没有某个IP疯狂请求,或者一堆异常的POST。 - 近期改动的文件:用
find /var/www -mtime -1找最近24小时被改过的文件,后门往往藏在这里。 - 可疑账号和密钥:检查系统里有没有多出来的管理员账号,SSH的 authorized_keys 有没有被加陌生公钥。
四、把漏洞补上
找到原因后做这几件事:
| 动作 | 说明 |
|---|---|
| 更新程序和插件 | WordPress、主题、插件全升到最新,老版本是最常见的入口 |
| 上WAF | 用云WAF或者ModSecurity拦注入和XSS |
| 改弱密码 | 后台、数据库、FTP一律换强密码,SSH禁用密码登录改密钥 |
| 限制上传目录 | 上传目录禁止执行脚本,防一句话木马 |
五、平时怎么防,少挨打
攻击防不住百分之百,但能做几件让对方嫌麻烦的事:
- 藏好源站IP:业务前面套CDN或高防,源站IP不对外暴露,别人想直接打你都找不到地方。
- 定期备份并异地存:备份别放同一台服务器,传到对象存储或者另一台机器,出问题一键还原。
- 业务IP隔离:做多账号、多店铺的朋友,给不同业务配独立出口IP,比如极跃IP(jiyueip.com)的静态住宅IP,一个业务出问题不至于牵连其他。
- 装监控:服务器资源、访问量设阈值告警,异常波动第一时间知道,不用等用户来投诉。
常见问题
被攻击时第一件事到底是先备份还是先恢复?
先备份现场再恢复。被改坏的页面是证据,覆盖了就没法查是谁从哪进来的,后面还可能再中招。备份完再动手还原。
没有高防也没有CDN,被DDoS了只能干瞪眼?
临时办法是联系机房或云厂商开启流量清洗,或者干脆换一个源站IP、把域名解析指过去。根本解法还是平时就把源站IP藏好,前面套一层防护。
网站被标“危险”后怎么解除?
先彻底清掉恶意代码、确认没后门,再去搜索引擎的安全中心提交申诉,说明已修复。过程要几天,期间保持站点干净别再中招。
最后提醒一句:这篇文章讲的是“怎么在被攻击时保护自己、怎么加固”。反过来,拿这些手段去打别人的网站是明确的违法行为,刑法里破坏计算机信息系统、非法控制计算机信息系统都是重罪。技术是用来守住自己资产的,不是用来伤人的。






