FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 2728|回复: 3
打印 上一主题 下一主题

服务器防火墙拦截xxs攻击,表单请求失败的问题

[复制链接]
跳转到指定楼层
楼主
发表于 2019-8-8 10:59:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初次加载页面的时候页面上没有动态生成隐藏id为F_STATE的input控件,正常加载页面,当在该页面有服务器端事件提交表单时,会生成一个id为F_STATE的input隐藏控件,该控件值存放当前所有页面控件源码的一个base64加密的编码,应该是记录表单提交前的一些操作,表单提交之后重新给页面控件选择值列表这些赋值,该控件值随着表单一起提交,但是服务器在接收到表单中这个F_STATE控件的值的时候,是解析出的未base64加密前的页面控件源码携带img src,alter这些,所以拦截,post提交失败,这个是因为防火墙这些会自动解码base64加密这些还是有什么其他原因造成控件源码直接在表单中提交了
沙发
发表于 2019-8-8 11:35:34 | 只看该作者
添加例外,这里不存在攻击行为,有时间防火墙也是傻的可以。

另一种办法就是把F_STATE保存到服务器,看下官网示例源代码的做法。
板凳
 楼主| 发表于 2019-8-9 16:14:12 | 只看该作者
sanshi 发表于 2019-8-8 11:35
添加例外,这里不存在攻击行为,有时间防火墙也是傻的可以。

另一种办法就是把F_STATE保存到服务器,看下 ...

我照着F_STATE保存到服务器的方法改了一下,保存的时候在当前页新增了一个隐藏域用来放F_STATE的值,F_STATE值base64编码之后前面加了几个特定字符,读取的时候剔除掉加的那几个字符在解码,防火墙就没拦截了,有点坑爹,防火墙应该是吧表单值都base64解码之后再去分析的
地板
发表于 2019-8-12 10:23:52 | 只看该作者
qwer20181229 发表于 2019-8-9 16:14
我照着F_STATE保存到服务器的方法改了一下,保存的时候在当前页新增了一个隐藏域用来放F_STATE的值,F_ST ...

所以从防火墙下手吧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-23 11:38 , Processed in 0.043498 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表