【问题标题】:What are the security concerns with static code analysis warning CA2104?静态代码分析警告 CA2104 有哪些安全问题?
【发布时间】:2018-03-20 19:41:25
【问题描述】:

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

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

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

【问题讨论】:

标签: visual-studio static-analysis


【解决方案1】:

已阅读此内容的documentation。我相信会发出警告,因为尽管该属性被标记为只读。没有什么可以阻止用户更改只读属性的属性。

用户将是包含父类型的程序集/库的消费者。

由于该属性是只读的,它可能已被设置,因为作者不希望该属性被更改/重新分配,但没有什么可以阻止子对象上的任何属性被更改。这与只读的含义相反。因此警告

我认为这是一个与安全性相关的脆弱链接,但如果库作者想要保护暴露的对象而不允许对其进行修改,那么它仍然有效,但实际情况并非如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多