FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

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

搜索
查看: 3218|回复: 4
打印 上一主题 下一主题

【已采纳】FineUI控件的回发参数校验(MAC验证)

[复制链接]
跳转到指定楼层
楼主
发表于 2016-10-1 11:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
FineUI没有用ViewState而使用了F_STATE,但是也有一个问题,F_STATE 里的数据回发到后台没有校验数据是否被篡改,控件数据回发到后台也没有做校验。这样就容易有安全问题,恶意用户可以修改F_STATE的值或者控件的回发值,比如,给绑定数据库源的dropdownlist、grid 增加、修改一些值,回发到后台就可以越权访问甚至越权修改。

而在.net framework中有视图状态MAC和事件校验,viewstate可配置加密,只要用户在前台篡改了绑定数据源的控件生成的表单选项的值,就会抛出异常。
FineUI是否应该也增加一个事件校验或数据源选项、F_ITEMS的MAC验证机制?
沙发
发表于 2016-10-1 11:53:18 | 只看该作者
viewstate 一样可以解密,照你这逻辑一样可以篡改。如果数据真需要保密,应该加密数据流,需要你自己写规则。
板凳
 楼主| 发表于 2016-10-1 12:30:09 | 只看该作者
zy32002 发表于 2016-10-1 11:53
viewstate 一样可以解密,照你这逻辑一样可以篡改。如果数据真需要保密,应该加密数据流,需要你自己写规则 ...

web.config/IIS 配置加密 不知道密钥就不可以解密了,解码base64后得到的也是加密的,篡改不了。

其实FineUI源码也好改
增加一个MAC属性。
FState也增加一个:FState.AddModifiedProperty("MAC")....
生成F_Items后,生成一个Hash用密文加密
数据回发后,将回发的F_Items用同样的密文加密,与回发的MAC比较。
只要F_Items与MAC修改了任何一个都会有问题,而只要密文不知道,客户端就算不出来篡改后的MAC。
地板
发表于 2016-10-4 09:01:22 | 只看该作者
    发表于 2016-10-1 12:30
web.config/IIS 配置加密 不知道密钥就不可以解密了,解码base64后得到的也是加密的,篡改不了。

其实Fi ...

是可以这么增强......
5#
发表于 2016-10-16 22:22:02 | 只看该作者
多谢指出。

下个版本(FineUI v6.0.0),我们会增加配置项EnableFStateValidation(默认为true),对F_STATE进行服务器端验证,防止客户端篡改(8846)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-23 01:35 , Processed in 0.044065 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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