后台的删除和状态切换接口,能不能用浏览器直接访问触发

📅 2026-10-09 👁️ 0

后台里删除一条数据、切换一个状态的接口,如果允许浏览器直接用地址访问就触发,风险不在于「接口暴露」这层字面意思,而在于任何带着登录态的点击都可能变成一次执行。同行开源程序的一次版本修复正是这条:后台用户删除与状态切换接口可被裸 GET 请求触发跨站请求伪造,修复方式是改为 POST 提交并校验表单标识。这类修复值得每个建站的人对照自查一遍。

什么样的接口会被浏览器直接触发

满足两个条件的接口就在这一类里:一是它靠地址栏就能访问,也就是没有区分请求方法;二是它会改数据,删除、启用停用、审核通过、移入回收站都算。

危险组合出现在这里:管理员登录后没有退出,登录态还在浏览器里;这时他打开了别人发来的一篇文章、一个图片地址或者一段嵌在页面里的自动请求。请求带着他的身份到达后台,服务器看到的是「已登录的管理员在执行删除」,看不出这一下不是他主动点的。

为什么登录态本身就够危险

后台的认证通常靠会话凭证:登录成功后发一个凭证,之后的请求都带着它。用 JWT 这类签名令牌的实现里,凭证本身不需要再查一次密码,只要签名对得上就被认。这带来一个特性——凭证是否被借用,从认证这一步看不出来。

所以真正的防线不能只放在「有没有登录」,要放在「这一次动作是不是用户在本页面上主动发起的」。

请求方法和一次性校验各挡什么

两件事解决的是两个问题:

收口手段 挡住的场景 挡不住的场景 判断依据
改状态的动作只接受提交方法,不接受直接访问 页面里塞进来的自动请求、图片占位式请求 攻击者诱导用户主动提交表单 接口是否区分方法
校验一次性的表单标识 跨站发起的写操作 已拿到页面内容的高级构造 校验值是否与会话绑定、是否只可用一次
凭证设较短有效期 登录态被长期借用 有效期内的一次性滥用 过期时间与刷新策略
高危接口按域关闭 不需要的能力被外部调用 已开启能力的误用 默认是否开放

单独用第一条会被绕过,单独用第二条也一样;两条同时用才让「改数据」这件事必须带一个攻击者无法从自己页面里获得的值。

自家后台在这两处怎么收口

站内的安全能力是按层配置的:认证走签名令牌,接口层按意图目录收敛暴露范围,备份、升级、多站点这类全站级操作默认关闭,需要显式开启才对外可调用。写操作还支持回合级合并确认,一次批量动作要先给出会改什么的清单,确认后才落。

版本层面也有对照。v3.6.6 修掉的两条问题里,一条是列表排序参数被拼进查询语句造成的注入,另一条是站点切换用的登录凭证可以被伪造。前者属于「参数进了查询」,后者属于「凭证的有效期与用途设得太宽」。这两条和跨站请求伪造其实是同一类问题的三个面:能被借用的东西,都不要留给外部去猜。

自查三步:列表、方法、校验

第一步,把后台所有会改数据的动作拉一份清单,按「删除类、状态类、导入类」分三组。第二步,逐个确认这些动作能不能用直接访问触发;能触发的全都要改。第三步,确认每个动作是否带与会话绑定的校验值,以及这个值是否用过即废。

补一条运维口径:修完之后要轮换签名密钥并修改管理员密码,因为攻击面收口解决的是以后,凭证是否已经泄露解决的是现在。

常见问题

问:只把后台地址改成猜不到的路径行不行? 答:不够。地址混淆不改变「请求带登录态就会被执行」这件事,而且把后台路径写进 robots 之类的公开文件反而暴露入口。

问:接口只做查询会不会有风险? 答:风险性质不同。查询接口要防的是越权读取和注入,改数据要防的是被借用发起,两类要分别校验。

问:限流和验证码能替代这两条吗? 答:不能。它们降低批量尝试的效率,但一次成功的伪造不需要多次尝试。

相关文章

批量提交链接给搜索引擎时,一次能发多少条、隔多久能重发

批量向搜索引擎提交链接时,跨引擎的提交通道允许在单个请求里带上上万个地址,站点地图则按单文件上限拆分;同一链接频繁更新时应留出最小重发间隔,通常以分钟为单位排队列。提交前先确认域名归属校验通过,密钥或验证文件放在站点根目录或同一主机上可公开访问的位置,否则整批发出去也不会被采信。

2026-10-09

同样是 9 分的两个漏洞,为什么处置顺序不一样

两个评分相同的高危漏洞,处置顺序不同是因为分数由指标组合算出,同样的分值可以对应完全不同的触发门槛与影响范围。读评级要看分数怎么来、需要不需要登录、影响的是机密性还是可用性,再结合自家是否在用它决定的顺序。

2026-10-09

公告标题写了维护与安全,安全部分去哪一页核对

版本公告标题同时写维护与安全时,安全修复的具体内容通常不在新闻首页正文,要按分类栏目进到对应发布页核对修复项与受影响版本;跟进动作分三步:确认版本区间、判断是否用到相关能力、排维护窗口并按建议轮换凭证。

2026-10-09

官网首页写的表数量和代码体积,能判断程序轻重吗

官网首页标注的数据表数量与代码体积能不能用来判断程序对服务器资源的占用:这两项是结构指标,说明复杂度与安装包大小,不等于运行时的内存与并发表现。真正要对比的是同类技术栈的内存口径和单机承载量级。

2026-10-09

站点目录里的数据文件会被直接下载吗,部署时该挡在哪一层

站点目录里的数据库文件、备份产物和日志如果落在公网可访问的路径上,确实可能被直接下载,因为 Web 服务器默认会把能匹配到文件的请求当静态内容返回。拦截要分两层:部署层给数据目录加拒绝规则,程序层保证备份和临时文件不生成在可访问路径里,两者都做完再按清单复核一遍默认端口的暴露面。

2026-10-09

内容和 AI 之间的授权信号,现在能表达到哪一层

站点表达对 AI 抓取的授权范围目前有两层信号:按路径的排除规则和按用途的授权声明。排除规则能说不让抓哪些路径,却说不清同一篇内容能不能被用来训练;按用途拆分的信号可以把搜索、代理访问、训练三类用途分别表态,粒度已经细到按页面条件设置默认值。站内负责这两层配置的是 robots 设置与面向模型的说明文件生成。

2026-10-09

一天里二十多条模块级公告同时发布,处置顺序该按什么排

一天里同时发布二十多条模块级安全公告时,处置顺序不能只按评级排。可用的排法是评级乘以「这个模块我到底装没装」:未安装的可以直接结案,装了的再看暴露面是公网页面还是后台内部页,然后才是评级高低和是否已有可用补丁。全站级操作接口默认关闭,能让需要显式开启的能力天然不在当天的可被打面里。

2026-10-09

远程抓图接口为什么会被用来探测内网,导入图片时该挡什么

按地址抓取远程图片的功能,本质上是程序替发起人去访问一个地址,如果目标地址不加约束,就可以指向内网服务,这就是服务端请求伪造的成因。加固要按四道限制来做:连接超时、响应大小上限、解析后的地址校验与内网地址拦截、跟随跳转后的再校验;批量导入和内容采集这两条链路共用同一套取值边界才有效。

2026-10-09