ASP.NET中的ViewState内容格式分析
2004-11-03 09:27 灵感之源 阅读(2151) 评论(4) 编辑 收藏 举报声明:这个随笔没有什么技术价值,纯粹好奇之作。
一直对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>;"),不知道会怎样?应该会先编码,微软的人不会差到这么基本的问题都没有考虑。
先分析到这里,上班:)今晚继续。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架