|
网站上线第三天,网站首页被挂上了博彩广告。管理那天早上我打开后台,制度看到访问量从日均三百跳到两万,网站还没来得及高兴,管理技术同事截图发来——页面底部多了一行显眼的制度跳转链接,点进去是网站境外赌场。没人知道它怎么进来的管理,安全扫描报告显示一切正常,制度后来查了日志才发现,网站是管理评论区被人塞了段iframe代码,过滤规则没拦住。制度 这件事之后,网站我们重新写了《网站管理制度》。管理制度这东西,制度写出来容易,执行起来全是细节。第一条就改了权限分配:内容编辑账号不再拥有上传脚本文件的权限,图片上传单独走审核队列,服务器SSH密钥只有运维组两个人持有,其他人一律用堡垒机登录,操作记录留痕。听起来繁琐,但那次事故的教训是——方便永远给安全让路。 更新流程也得规范。以前编辑改个错别字,直接在生产环境改完就保存,现在不行了。所有修改先到测试服务器,预览确认没问题,再走发布申请,由当周值班的技术人员执行。流程多了一道,返工率反而降了,因为预览阶段能发现排版错乱、链接失效这些肉眼看不到的问题。有次编辑急着上线一篇活动稿,没走流程直接改了线上内容,结果样式表冲突,整页乱码,用户截图发到客服邮箱,比投诉电话来得还快。 备份策略是吃过亏才补上的。原先每天凌晨自动备份一次数据库,保留七天。后来一次误操作删了一张核心表,恢复时发现备份文件本身损坏,只能找回三天前的数据,那三天用户发的帖子、评论全部丢失。现在改成每六小时增量备份,每日全量备份,备份文件同时存到两个不同机房的独立存储,每月做一次恢复演练——就上个月,演练时真发现某个备份节点同步失败,提前修掉了,不然真出事时又是一场灾难。 内容审核这条,我们定了个硬规矩:晚上十点以后到第二天早上八点,所有用户发布内容先进待审池,不直接显示。没值班编辑盯着,宁可让用户等几个小时,也不冒风险。白天人工审核加关键词过滤双重过,敏感词库每周更新一次,技术那边爬取同类网站的封禁列表做参考。有人抱怨审核太严,一个帖子发出去五分钟才显示,但比起之前那种半夜被人刷屏色情广告、第二天早上才被举报的情况,这点延迟值得。 密码策略也改过一轮。早先要求用户设置包含大小写字母、数字和特殊字符的密码,结果大量用户直接在密码里加个“1”和“!”应付了事。后来干脆引入二次验证,登录时除了密码,还要输入手机验证码,后台管理员的登录更是强制绑定物理密钥。有人觉得麻烦,但去年有同行网站因为员工密码泄露被拖库,用户信息全被公开叫卖,那件事之后,没人再嫌登录步骤多了。 制度里还有一条容易被忽略的——离职员工的账号回收。以前有人走了,账号只是禁用,数据还留在那里。后来发现一个离职半年的前员工账号还能登录后台查看部分报表,因为权限没清干净。现在人事部门一办离职手续,系统自动触发账号锁定、权限回收、会话强制注销,所有相关日志归档留存,三个月后彻底删除个人敏感信息。 这套制度运行了一年多,网站被攻击的次数没少,但再没出过那种让人半夜爬起来救火的事故。安全不是装个防火墙就完事的,它是一堆不起眼的规矩,每一条背后都是踩过的坑。下次有人觉得流程太麻烦,我就给他看那次博彩广告的截图——现在还在我手机相册里存着。 |