访问修饰符的安全性影响(公共,私有,内部,受保护)

问题描述 投票:7回答:3

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

java c# security access-modifiers
3个回答
8
投票

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

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


2
投票

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


-2
投票

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

因此,是的,访问修饰符对于Java 2安全模型对于处理移动代码绝对至关重要。例如,如果不受信任的用户可以清除java.lang.System.security字段,那么到此为止(

Update:我相信特定示例不再有效,但原理仍然存在)。访问修饰符可防止通过直接引用进行非法访问,并且还通过运行时安全性检查,即使通过反射访问时也是如此]。在其他情况下,这仅与代码质量有关。尽管存在所有“我们非常重视安全性”的借口,但软件安全漏洞几乎可以归结为

质量欠佳代码

。因此,访问修饰符随处可见。

© www.soinside.com 2019 - 2024. All rights reserved.