前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CA2315:请勿使用不安全的反序列化程序 ObjectStateFormatter

CA2315:请勿使用不安全的反序列化程序 ObjectStateFormatter

作者头像
用户4268038
发布2022-02-20 20:07:09
4580
发布2022-02-20 20:07:09
举报
文章被收录于专栏:stcnb

规则 ID

CA2315

类别

安全性

修复是中断修复还是非中断修复

非中断

原因

调用或引用了 System.Web.UI.ObjectStateFormatter 反序列化方法。

规则说明

反序列化不受信任的数据时,不安全的反序列化程序易受攻击。 攻击者可能会修改序列化数据,使其包含非预期类型,进而注入具有不良副作用的对象。 例如,针对不安全反序列化程序的攻击可以在基础操作系统上执行命令,通过网络进行通信,或删除文件。

此规则会查找 System.Web.UI.ObjectStateFormatter 反序列化方法调用或引用。

如何解决冲突

如果可能,请改用安全的序列化程序,并且不允许攻击者指定要反序列化的任意类型。 一些更安全的序列化程序包括:

System.Runtime.Serialization.DataContractSerializer

System.Runtime.Serialization.Json.DataContractJsonSerializer

System.Web.Script.Serialization.JavaScriptSerializer - 请勿使用 System.Web.Script.Serialization.SimpleTypeResolver。 如果必须使用类型解析程序,请将反序列化的类型限制为预期列表。

System.Xml.Serialization.XmlSerializer

Newtonsoft Json.NET - 使用 TypeNameHandling.None。 如果必须为 TypeNameHandling 使用其他值,请将反序列化的类型限制为具有自定义 ISerializationBinder 的预期列表。

协议缓冲区

使序列化的数据免被篡改。 序列化后,对序列化的数据进行加密签名。 在反序列化之前,验证加密签名。 保护加密密钥不被泄露,并针对密钥轮换进行设计。

何时禁止显示警告

在以下情况下,禁止显示此规则的警告是安全的:

已知输入受到信任。 考虑到应用程序的信任边界和数据流可能会随时间发生变化。

已采取了如何修复冲突的某项预防措施。

伪代码示例

冲突

using System.IO;

using System.Web.UI;

public class ExampleClass

{

public object MyDeserialize(byte[] bytes)

{

ObjectStateFormatter formatter = new ObjectStateFormatter();

return formatter.Deserialize(new MemoryStream(bytes));

}

}

Imports System.IO

Imports System.Web.UI

Public Class ExampleClass

Public Function MyDeserialize(bytes As Byte()) As Object

Dim formatter As ObjectStateFormatter = New ObjectStateFormatter()

Return formatter.Deserialize(New MemoryStream(bytes))

End Function

End Class

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档