个人博客虽然流量不大,但同样暴露在公网。安全与性能,是上线前必须处理的两件事。
防 SQL 注入:一律使用预处理语句
永远不要用字符串拼接 SQL。PDO 的预处理语句可以彻底杜绝注入:
<?php
$stmt = $pdo->prepare("SELECT * FROM posts WHERE slug = :slug");
$stmt->execute(["slug" => $slug]);
$post = $stmt->fetch();
?>防 XSS:输出时转义,输入时过滤
输出到页面的所有变量都要经过 htmlspecialchars 转义;后台编辑器提交的富文本,保存前用白名单过滤掉 script 标签和事件属性。
密码安全
用户密码一律使用 password_hash() 加密存储,登录时用 password_verify() 校验。永远不要明文保存密码。
性能要点
- 图片懒加载:img 标签加 loading="lazy";
- CSS/JS 延迟加载,减少首屏阻塞;
- 使用系统字体栈,不加载 Web 字体;
- 开启 Gzip 压缩与浏览器缓存。
安全不是功能,而是底线。