|
去年秋天,个人我帮一位做独立博客的网站朋友处理了一次入侵事件。攻击者没用什么高级漏洞,安全只是解决猜中了他后台的弱密码,然后上传了一个PHP webshell。论文三天后,个人他的网站网站成了某黑产链条的流量跳板。这件事让我意识到,安全个人网站的解决安全问题往往不是技术深度不够,而是论文基本防线根本没建起来。 很多人觉得个人网站“没什么值得黑的个人”。这个判断本身就危险。网站攻击者要的安全不是你的数据,而是解决你的服务器资源、你的论文域名权重,甚至只是把你当成一个IP跳板。自动化扫描工具每天在互联网上爬行,它们不挑目标,只找漏洞。你的网站只要存在一个已知的未修复漏洞,就可能被纳入某个僵尸网络。 先说最要命的部分:身份认证。我见过太多个人站长用admin/123456这种组合,或者把WordPress后台密码设成和邮箱一样。攻击者拿到一个弱密码,剩下的就是自动化工具的事了。我的做法是——后台路径改掉,不用默认的/wp-admin;开启双因素认证;登录失败五次直接封IP半小时。这三条加起来,成本几乎为零,但能挡掉九成以上的暴力破解。 文件权限是另一个被忽视的角落。Linux服务器上,很多人图省事把网站目录设成777。这意味着任何脚本都能往目录里写文件。正确的做法是:目录755,文件644,上传目录单独处理,禁止执行权限。我自己的服务器上,wp-content/uploads目录的PHP执行权限是直接关掉的。攻击者就算上传了webshell,也跑不起来。 数据库这块,很多人只改前缀就以为安全了。不够。数据库用户权限要最小化——网站连接用的账号只给SELECT、INSERT、UPDATE、DELETE,不给DROP、ALTER、CREATE。这样即使被注入,攻击者也删不了表、改不了结构。另外,数据库不要监听0.0.0.0,只绑本地回环地址。远程访问?用SSH隧道,别直接暴露3306端口。 HTTPS现在已经是底线了。Let's Encrypt免费证书申请只要几分钟,自动续期也不复杂。没有HTTPS的网站,登录凭证在传输过程中就是明文的。公共WiFi下,隔壁桌的人抓个包就能拿到你的后台密码。这不是危言耸听,我曾在咖啡馆用Wireshark亲眼看到过。 备份这件事,说起来简单,做起来容易偷懒。我的策略是:数据库每天凌晨自动导出,加密后传到对象存储;网站文件每周全量备份一次,保留最近四周。关键点在于——备份文件不能放在网站目录下。我见过有人把备份的SQL文件放在web根目录,结果被扫描器直接下载走,里面全是用户数据。 日志监控不需要多复杂。我装了个简单的脚本,监控wp-login.php的访问频率,一分钟超过十次就发邮件告警。另外,用fail2ban自动分析日志,发现异常IP直接封禁。这些工具配置起来不超过半小时,但能让你在攻击发生的早期就察觉。 最后说一个容易被忽略的:第三方插件和主题。WordPress生态里,很多漏洞来自不再维护的插件。我的原则是——插件只装必需的,装了就定期更新,超过一年没更新的直接换掉。主题也一样,别用那些来路不明的破解版,里面塞后门是常事。 安全不是一次性工程。我每个月花二十分钟检查更新、看日志、确认备份。这二十分钟,比出事之后花三天恢复数据要划算得多。个人网站的安全,拼的不是技术多高深,而是有没有把那些枯燥的基本功坚持做下去。 |