• ASP.NET中的ViewState内容格式分析


    声明:这个随笔没有什么技术价值,纯粹好奇之作


    一直对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>;"),不知道会怎样?应该会先编码,微软的人不会差到这么基本的问题都没有考虑。

    先分析到这里,上班:)今晚继续。

  • 相关阅读:
    Java语言基础之流程控制语句
    localStorage的详细
    LeetCode374-猜数字大小(二分查找)
    LeetCode326-3的幂(很奇妙的水题)
    Angular学习-
    Angular学习-构建/部署
    JavaScript词法分析步骤
    IO模型
    解决You should consider upgrading via the 'python -m pip install --upgrade pip' command.
    协程
  • 原文地址:https://www.cnblogs.com/unruledboy/p/59854.html
Copyright © 2020-2023  润新知