首页 > 解决方案 > ASP.NET 坏习惯:存储在 Session 中的不可序列化对象

问题描述

我有一个类似的代码

Session["key"] = "value";

但根据 Fortify SCA 的说法,这被认为是一种不好的做法,原因是“存储在会话中的不可序列化对象”。

截图如下: 在此处输入图像描述

解决这个问题的最佳方法是什么?如何使字符串“值”可序列化?

标签: c#serializationfortify

解决方案


我认为这是一个误报。

来自强化文档

为了正确序列化会话,应用程序存储为会话属性的所有对象都必须声明该[Serializable]属性。此外,如果对象需要自定义序列化方法,它还必须实现ISerializable接口。

由于string没有实现ISerializable,所以不会通过检查。


推荐阅读