我无法理解为什么
java安全编码很重要.例如,为什么将变量声明为私有很重要?我的意思是我得到它将无法从类外部访问这些变量,但我可以简单地反编译该类以获取值.
类似地,将类定义为final将使得无法对此类进行子类化.什么时候继承类是危险的安全?如果有必要,我可以再次反编译原始类,并用我想要的任何恶意代码重新实现它.
当应用程序被用户“信任”时问题会出现吗?那么人们可能会以某种方式滥用这种信任?
基本上我正在寻找的是一个很好的例子,为什么应该遵循安全编码指南.
类似地,将类定义为final将使得无法对此类进行子类化.什么时候继承类是危险的安全?如果有必要,我可以再次反编译原始类,并用我想要的任何恶意代码重新实现它.
当应用程序被用户“信任”时问题会出现吗?那么人们可能会以某种方式滥用这种信任?
基本上我正在寻找的是一个很好的例子,为什么应该遵循安全编码指南.
解决方法
编程很难.
如果你定义了严格的API,它不公开那些不应公开的变量(我们喜欢称之为encapsulation),那么你可以帮助API的用户,从而使编程更容易.这被认为是一件好事.
原因主要不是“安全”,如保密秘密,清晰,简单和可理解性.
作为奖励,如果您知道API的用户当然没有改变背后的“您的”变量,那么使事情正常工作要容易得多.