1. 防 SQL 注入
永远不要直接拼接 SQL 语句,一律使用 PDO 或框架自带的查询构造器,开启参数绑定预处理。数据库账号权限最小化,不使用 root 连接项目。
2. 防 XSS 跨站
输出到页面的内容,用 htmlspecialchars() 转义;富文本使用专门过滤库,只保留安全标签。接口返回、前端渲染都要做转义,避免恶意脚本执行。
3. 防文件上传漏洞
上传文件必须校验后缀、MIME类型、文件大小,重命名文件,上传目录关闭 PHP 执行权限。绝对不要让用户上传 .php 等可执行脚本。
4. 防 CSRF 跨站请求伪造
涉及修改、删除、支付等操作,必须加 CSRF 令牌验证。不使用 GET 请求做数据修改,重要操作强制二次验证。
5. 严格校验入参
所有前端传参都不可信,必须在后端做长度、格式、业务规则校验。使用 isset()、empty() 判断参数是否存在,避免未定义变量报错。
6. 关闭错误信息暴露
生产环境关闭 display_errors,只记录日志,防止泄露网站路径、数据库信息等敏感数据。
7. 密码安全存储
密码不要明文存库,使用 password_hash() 和 password_verify() 加密验证,不要自己写加密算法。
8. 权限与接口安全
每个接口都要校验登录态和操作权限,防止越权查看、越权修改他人数据。后台管理路由做好权限控制,不依赖前端隐藏。
做好这 8 点,大部分常见漏洞都能直接挡住,项目上线更安全。