php接口常见漏洞集中在输入处理、数据输出、权限控制和配置管理四环节:sql注入因未参数化拼接查询;xss因输出未用htmlspecialchars转义;csrf因缺失token校验;未授权访问因忽略身份与数据归属验证;文件上传/包含因未限制类型或动态包含用户输入;cors因误配通配符;信息泄露因开启display_errors。

PHP 接口常见的漏洞主要集中在输入处理、数据输出、权限控制和配置管理四个环节。这些漏洞一旦被利用,轻则导致数据泄露,重则引发远程代码执行或服务器沦陷。
SQL 注入
用户输入未经过滤或参数化,直接拼接到 SQL 查询中。比如用 $_GET['id'] 构造查询语句:$sql = "SELECT * FROM users WHERE id = " . $_GET['id'];
攻击者传入 1 OR 1=1 就可能绕过条件,读取全部用户数据。
预处理语句(PDO 或 MySQLi)是目前最可靠的基础防护手段。
XSS 跨站脚本
接口返回的 HTML 内容或 JSON 数据中,嵌入了未经转义的用户输入。例如:echo "欢迎回来," . $_GET['name'];
若传入 <script>alert(1)</script>,前端就会执行脚本。
关键修复方式是输出前调用 htmlspecialchars(),并指定 ENT_QUOTES 和 UTF-8 编码。
CSRF 跨站请求伪造
接口缺乏请求合法性校验,攻击者可诱导已登录用户发起非自愿操作。典型场景包括修改密码、转账、删除资源等。
防御核心是引入一次性 Token:服务端生成并存入 Session,前端提交时附带该 Token,后端比对一致才执行。
配合 SameSite=Strict 的 Cookie 属性,能进一步降低风险。
未授权访问与越权
接口未做身份验证(如缺失 token 校验),或权限校验不严(如只校验登录状态,未判断用户所属角色/数据归属)。
常见表现:用户 A 可通过修改 URL 中的 user_id=2 查看或操作用户 B 的数据。
必须做到每个敏感接口都验证「你是谁」和「你有没有权限这么做」,避免仅依赖前端隐藏链接。
文件上传与包含漏洞
上传接口未限制扩展名、MIME 类型或未重命名文件,导致攻击者上传 .php 文件并直接访问执行。
文件包含类漏洞则多见于动态 include() 或 require(),例如:include($_GET['page'] . '.php');
传入 page=../../etc/passwd%00(配合空字节截断)或远程地址,就可能读取敏感文件甚至执行命令。
CORS 配置不当
错误设置 Access-Control-Allow-Origin: *,尤其在需要携带凭证(如 Cookie、Authorization 头)的接口上,会允许任意网站发起带认证的跨域请求。
应严格白名单控制来源,动态校验 Origin 头是否在许可列表中,并确保 Access-Control-Allow-Credentials: true 时不能配 *。
信息泄露与错误暴露
开启 display_errors 或未捕获异常,导致数据库路径、SQL 语句、PHP 版本、服务器结构等敏感信息直接返回给前端。
生产环境务必关闭错误显示,开启日志记录,并对所有异常做统一兜底响应(如 500 错误返回通用提示,不暴露堆栈)。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











