【问题标题】:Security impact of access modifiers (public, private, internal, protected)访问修饰符(公共、私有、内部、受保护)的安全影响
【发布时间】:2015-09-26 06:23:40
【问题描述】:

属性方法访问修饰符在C#、Java和其他编程语言中实际使用对应用程序的安全性有影响吗?它们是否还以某种方式防止未经授权的访问?或者它们只是用于清晰和适当编程的工具?

【问题讨论】:

    标签: java c# security access-modifiers


    【解决方案1】:

    不,访问修饰符不提供安全保护。它们只是为了方便开发人员而存在,例如它们有助于实施良好的编码实践并有助于编程模式。

    在 Java/C# 和其他语言中使用反射很容易访问其他无法访问的修饰符。

    【讨论】:

      【解决方案2】:

      访问修饰符的主要目的是强制执行特定的设计,而不是任何类型的安全性。

      【讨论】:

        【解决方案3】:

        与安全性一样,有必要了解您要保护的内容。了解您的威胁模型

        所以,是的,访问修饰符对于 Java 2 安全模型来说是绝对关键的,用于处理移动代码。例如,如果 untrusted 可以清除 java.lang.System.security 字段,那么这就结束了(更新:我相信特定示例不再有效,但原则仍然存在)。访问修饰符可防止通过直接引用进行非法访问,并且通过运行时安全检查,即使通过反射访问

        在其他情况下,它只是关于代码质量。软件安全漏洞几乎可以归结为劣质代码,尽管有各种“我们认真对待安全”的借口。所以访问修饰符无处不在。

        【讨论】:

          猜你喜欢
          • 2016-04-03
          • 1970-01-01
          • 2011-05-14
          • 2011-01-31
          • 2013-03-05
          • 2017-11-11
          相关资源
          最近更新 更多