ASP.NET中的ViewState内容格式分析
2004-11-03 09:27
513 查看
声明:这个随笔没有什么技术价值,纯粹好奇之作。
一直对ASP.NET生成的页面中一大串的ViewState内容比较好奇,不过懒于去反编译ASP.NET。这个东西形如:
<input type="hidden" name="__VIEWSTATE" value="dDw2Mjg5MzIzMTI7dDxwPGw8VHlwZUlEO0FjdGlvbklEO0tleXdvcmRzO1Nob3dDb2xvcjtTb 这里省略n多字符"
刚才心血来潮,稍微分析了一下这个东西,初步结论:
1、得益于平时比较喜欢研究文件/流/字符串格式,很快便判断也证实了__VIEWSTATE的Value是经过BASE64编码的;
2、用BASE64解码可以得出形如:
t<628932312;t<p<l<TypeID;ActionID;Keywords;ShowColor;SortExp;>;l<-2;-2;\e;True;CreatedDate;>>;l<i<1>;>;l<t<;l<i<5>;i<9>;i<19>;i<21>;i<23>;i<25>;i<29>;>;l<t<t<;t<i<11><@0<p<p<l<CurrentPageIndex;PageSize;PageCount;_!ItemCount;_!DataSourceItemCount;DataKeys;>这里省略了n多字符。可以看出这个编码是使用了关键字符“<”、“>”、“;”来作为分隔符号,大家还可以看见前面的“TypeID;ActionID;Keywords;ShowColor;SortExp”就是我在后代码中用到的ViewState:TypeID、ActionID、Keywords、ShowColor、SortExp。假如我使用了敏感字符作为名称呢?譬如ViewState("<a>;"),不知道会怎样?应该会先编码,微软的人不会差到这么基本的问题都没有考虑。
先分析到这里,上班:)今晚继续。
一直对ASP.NET生成的页面中一大串的ViewState内容比较好奇,不过懒于去反编译ASP.NET。这个东西形如:
<input type="hidden" name="__VIEWSTATE" value="dDw2Mjg5MzIzMTI7dDxwPGw8VHlwZUlEO0FjdGlvbklEO0tleXdvcmRzO1Nob3dDb2xvcjtTb 这里省略n多字符"
刚才心血来潮,稍微分析了一下这个东西,初步结论:
1、得益于平时比较喜欢研究文件/流/字符串格式,很快便判断也证实了__VIEWSTATE的Value是经过BASE64编码的;
2、用BASE64解码可以得出形如:
t<628932312;t<p<l<TypeID;ActionID;Keywords;ShowColor;SortExp;>;l<-2;-2;\e;True;CreatedDate;>>;l<i<1>;>;l<t<;l<i<5>;i<9>;i<19>;i<21>;i<23>;i<25>;i<29>;>;l<t<t<;t<i<11><@0<p<p<l<CurrentPageIndex;PageSize;PageCount;_!ItemCount;_!DataSourceItemCount;DataKeys;>这里省略了n多字符。可以看出这个编码是使用了关键字符“<”、“>”、“;”来作为分隔符号,大家还可以看见前面的“TypeID;ActionID;Keywords;ShowColor;SortExp”就是我在后代码中用到的ViewState:TypeID、ActionID、Keywords、ShowColor、SortExp。假如我使用了敏感字符作为名称呢?譬如ViewState("<a>;"),不知道会怎样?应该会先编码,微软的人不会差到这么基本的问题都没有考虑。
先分析到这里,上班:)今晚继续。
相关文章推荐
- 在Asp中使用存储过程 数值类型值
- ASP.NET WebParts Connections Transformers Tutorial
- ASP.NET SQLCacheDependency with SQLite and Triggers
- Integrating PayPal into E-Commerce Solutions with ASP.NET
- asp常 用 代 码
- 如何在DW/asp中让重复记录横向[N条记录]超过N条再纵向排
- ASP.NET动态生成HTML页面
- 用WINXP2+DW+ACCESS使用本地 ASP.NET 和 ASP 服务器时数据库连接失败
- 为asp.net程序添加自定义配置区域
- 让Asp.NET的DataGrid可排序、可选择、可分页
- 创建一个ASP通用分页类
- 把aspx文件编译成DLL文件
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- ASP.NET 2.0页面框架的几处变化
- ASP 验证码的程序及原理
- asp.net常用函数
- FlyTreeView for ASP.NET 3.2 破解攻略
- 利用ASP实现事务处理的方法(摘)
- ASP.NET 2.0中的登陆控件简介(原作)
- 加强对的asp学习,唉,,,没办法,为了吃饭呀!!