网站安全检查记录表

上周三凌晨两点,网站我盯着监控后台的安全告警日志,发现一个客户的检查记录站点在40分钟内被扫了6200次。攻击者没用什么高级漏洞,网站就是安全拿一个开源的目录扫描工具,对着后台登录页反复试弱口令。检查记录这事让我重新翻出自己那张《网站安全检查记录表》——纸质的网站,夹在文件夹里,安全边角已经卷了。检查记录每次做安全巡检,网站我习惯手写填一遍,安全比敲键盘记得牢。检查记录

表的网站第一块是“基础信息”。域名、安全IP、检查记录服务器位置、责任人、上次检查日期。别小看这几栏。上个月帮一个朋友看他的独立站,问他服务器在哪,他说“在云上”。再问哪家云,他说“就是那个云”。翻账单才发现是某小厂的香港节点,连快照功能都没有。基础信息填不清楚,后面的检查全是空中楼阁。

第二块我留给了“端口与服务”。80和443开着,正常。但有一次我发现一台机器还开着6379,Redis端口,没设密码。问运维,他说“内网用的,没事”。我当场用另一台同内网的测试机连上去,写了个key,读出来了。他脸都白了。这张表里我专门加了一行:非必要端口是否关闭?后面画勾还是画叉,得亲手验,不能听汇报。

第三块是“登录与认证”。后台路径是不是默认的/admin?验证码有没有?登录失败几次锁定?我见过最离谱的一个站,后台登录框直接写在首页底部,账号是admin,密码是网站域名。攻击者连扫描都省了。记录表里这一栏我写得最细,因为九成以上的入侵都是从这儿进来的。弱口令、无锁定、无验证码,三样占一样,基本等于门没锁。

第四块关于“备份”。不是问“有没有备份”,而是问“最近一次恢复演练是什么时候”。很多团队每天自动备份,但从来没试过能不能恢复。我自己的做法是:每季度从备份里拉一个完整站点到本地,改hosts指向,看能不能正常跑起来。记录表上这一栏只有两个选项:已验证可恢复 / 未验证。没有中间地带。

第五块是“日志与告警”。服务器有没有开访问日志?保留多少天?有没有对异常状态码、异常频率做告警?我见过一个电商站,被薅了三天优惠券才发现,因为日志只保留24小时,前两天的记录早被覆盖了。记录表里我加了一行手写备注区,专门记“本次发现的异常IP或异常行为”。上次那个6200次扫描的IP,我顺手写在了表背面,后来一查,来自三个不同的云厂商,全是临时实例。

最后一块是“补丁与组件”。CMS版本、插件版本、框架版本。很多站被拖库不是因为代码写得烂,是因为用的老版本WordPress插件有已知SQL注入。记录表上我要求填“当前版本号”和“官方最新版本号”,两个数字对不上,就得处理。别信“自动更新已开启”,我遇到过自动更新失败但界面显示成功的案例,查文件修改时间才发现根本没更新。

这张表我用了四年,改过七版。每加一行,背后都是一个真实踩过的坑。它不复杂,甚至有点土,但每次填完,心里踏实。安全检查不是买一套WAF就完事,是把这些琐碎的事一件件确认过去。你如果也想做一张,别照抄,从你最近一次被黑或者差点被黑的地方开始写。那才是你最该检查的。