加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

HP Fortify:ASP.NET不良实践:会话中存储的非可序列化对象

发布时间:2020-12-16 09:42:22 所属栏目:asp.Net 来源:网络整理
导读:HttpContextHelper.cs中的方法set_UserActiveEnvironments()在第47行将一个不可序列化的对象存储为HttpSessionState属性,这可能会损害应用程序的可靠性 默认情况下,ASP.NET服务器存储HttpSessionState对象,其属性以及它们在内存中引用的任何对象.此模型将活
HttpContextHelper.cs中的方法set_UserActiveEnvironments()在第47行将一个不可序列化的对象存储为HttpSessionState属性,这可能会损害应用程序的可靠性

默认情况下,ASP.NET服务器存储HttpSessionState对象,其属性以及它们在内存中引用的任何对象.此模型将活动会话状态限制为单个计算机的系统内存可以容纳的状态.为了扩展超出这些限制的容量,服务器经常配置为持久会话状态信息,这些信息既可以扩展容量,又可以跨多台计算机进行复制,从而提高整体性能.为了保持其会话状态,服务器必须序列化HttpSessionState对象,这要求存储在其中的所有对象都是可序列化的.

为什么它显示为漏洞,我该如何解决?

解决方法

Mohanraj,也许你已经找到了解决方案,但下面是一个看似合理的解释:

HP Fortify表示存在一些误报,这就是为什么您需要逐个分析它指示您的每个漏洞,这就是为什么它有一个分类列表供您分析是否发现漏洞是真正的威胁还是误报.

在这种特殊情况下,为了修复漏洞,您只需要将您尝试传输/发送到Session的类装饰为[Serializable],这在使用会话在应用程序中存储数据时是非常值得推荐的.

由Piet Obermeyer和Jonathan Hawkins检查this article,它更好地解释了序列化的使用.

希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读