静态代码分析警告 CA2104 有哪些安全问题?

What are the security concerns with static code analysis warning CA2104?

我最近 运行 在 Visual Studio 中对一个解决方案进行静态代码分析,看到一行被标记为 CA2104。标记为只读的可变对象。我理解为什么将可变类型设置为 ReadOnly 没有意义,因为对象的属性可以更改,但我不明白为什么这被认为是安全问题。

这似乎更像是一个数据 integrity/code 质量问题。想到的唯一与安全相关的事情是,如果用户能够以某种方式更改属性,他们可能会使对象以不同的方式运行,但是对于任何可变对象来说不是这样吗?我错过了什么?

编辑:我看到这被标记为可能重复。我通读了链接的问题,但我觉得这不能回答我的问题。我明白 CA2104 警告的意思,但我不明白为什么将其归类为安全问题。这就是我想了解的。

已阅读关于此的 documentation。我相信发出警告是因为尽管 属性 被标记为 read-only。没有什么可以阻止用户更改 read-only 属性.

上的属性

其中用户将是包含父类型的 assembly/library 的使用者。

因为 属性 是 read-only 可能是因为作者不希望 属性 是 changed/re-assigned 而设置的,但是没有什么可以阻止任何子对象的属性不被更改。这与 read-only 的意思相反。因此警告

我想这对安全性来说是脆弱的link,但如果库作者想要保护暴露的对象而不允许修改它,它仍然有效,但实际情况并非如此。