PHP面试题更新 2026-08-03

针对 PHP 服务,请从不同层面说明提升其安全性的具体做法与关键措施。

考察说明

考查对 PHP 服务安全防护整体框架和具体落地措施的理解。

回答思路

  1. 【回答框架 1】输入与验证层面:对所有外部输入(如 $_GET、$_POST、$_COOKIE)进行严格校验,使用过滤函数和类型检查,防止注入类攻击。
  2. 【回答框架 2】输出与编码层面:对输出到 HTML、JavaScript、SQL 等不同上下文的数据进行相应编码(如 htmlspecialchars、PDO 预处理语句),避免 XSS 和 SQL 注入。
  3. 【回答框架 3】认证与授权:实现健壮的会话管理,使用安全的密码哈希(如 password_hash),实施基于角色的访问控制,防止越权。
  4. 【回答框架 4】服务配置与部署:关闭不必要的功能(如 display_errors),设置正确的文件权限,使用 HTTPS,定期更新 PHP 版本和依赖库,及时修补漏洞。
  5. 【回答框架 5】其他安全措施:日志监控、安全头设置(如 CSP、HSTS)、文件上传安全(校验类型和大小)等。
  6. 【关键点 1】输入验证和输出编码是 PHP 安全的基础。
  7. 【关键点 2】使用 PDO 预处理语句防止 SQL 注入。
  8. 【关键点 3】密码必须用 password_hash 处理,不使用明文或 md5。
  9. 【关键点 4】生产环境关闭错误显示,开启错误日志。
  10. 【易错点 1】只依赖前端验证,后端未过滤。
  11. 【易错点 2】使用 mysql_* 函数或字符串拼接 SQL。
  12. 【易错点 3】忽略文件上传的安全检查。