You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

仅传单个参数的AJAX请求调用PHP接口是否存在SQL注入等攻击风险?

风险判定&解决方案

首先明确结论:这种写法存在极高的SQL注入风险,同时还有其他多种网络攻击隐患。

  • 你在前端限制的参数number类型完全没有可信性,前端所有校验、类型约束都可以被轻松绕过:攻击者只需要抓包修改请求参数,就能把原本的数字改成任意SQL拼接字符串。举个最简单的例子,如果你的服务端SQL是直接拼接的:SELECT * FROM goods WHERE id = $_GET['id'],攻击者把参数改成1 OR 1=1,执行的SQL就变成了SELECT * FROM goods WHERE id = 1 OR 1=1,直接就能拖走你整张表的所有数据。如果你的数据库账号权限开的更高,攻击者甚至可以拼接DROP TABLE、写入webshell的语句,直接拿到服务器控制权。
  • 只校验参数是否存在等于没做任何有效安全校验,哪怕你确定参数应该是数字,也不能跳过后端的校验逻辑。

除了SQL注入之外,还有两类常见风险:

  • 数据泄露风险:如果没有做接口权限校验,攻击者可以直接遍历所有数字参数,拉走你数据库里所有可通过这个接口查询的敏感数据,比如参数是用户ID的话,遍历1到10000就能拿到上万条用户信息。
  • 可用性风险:如果没有做请求频率限制,攻击者可以用少量资源发起大量请求,直接把你的数据库或者接口打垮,导致正常用户无法访问。

推荐的修复方案:

  1. 所有数据库操作必须使用PDO/MySQLi的预处理语句绑定参数,彻底禁止直接拼接SQL字符串,这是防SQL注入的最有效方案
  2. 后端对接收的参数做严格校验:数字类型的参数必须强制用intval()/floatval()转成对应数值类型,还要校验参数的取值范围是否合法
  3. 增加接口鉴权逻辑,验证请求的用户是否有权限查询对应参数的内容
  4. 增加接口请求频率限制,避免被恶意爬取或者CC攻击

内容的提问来源于stack exchange,提问作者qqmisko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 07:18:02