FindBugs引发一个名为EI_EXPOSE_REP的bug,其描述如下:
EI:可以通过返回对可变对象的引用来公开内部表示
返回对存储在对象字段之一中的可变对象值的引用将公开该对象的内部表示形式。如果实例由不受信任的代码访问,并且对可变对象的未经检查的更改会危及安全性或其他重要属性,则需要执行不同的操作。在许多情况下,返回对象的新副本是更好的方法。
这背后真正的威胁是什么?
如果是恶意代码问题,攻击者几乎可以做任何他想做的事情,可变性不会是最大的问题。如果它是一个漏洞,只有当不受信任的代码也被执行时,它才能被利用,我看不出任何情况下这是真的。
对此有什么看法吗?
谢了!
关键在于,无论何时打开实现,都要冒代码损坏的风险,不管是故意的还是其他的。很明显,例如,恶意库用户可以拆开jar并以这种方式了解细节--关键是将暴露的风险降至最低:它是无法消除的。
外部代码访问库的一个简单示例:
考虑一些简单的东西,比如持有访问级别的对象。如果它是可变的,可以想象库用户可以设置他们自己的访问级别。任何合理的库都很少公开这种微不足道的东西,但这是内部表示可能被滥用的一个明显例子。
根据以下文章:wolfram Mandelbrot集,我试图了解他们是如何精确地计算
我在问我自己,语言设计者在“还函数”背后的意图是什么,以及是否几乎所有人都在滥用它。 如果在堆栈溢出上搜索Kotlins作用域函数的示例,您将得到以下公认的答案:https://stackoverflow.com/a/45977254/5122729 另外,当您想使用apply,但不想对其进行阴影处理时,请使用它 类水果篮子{私有var权重=0 使用apply-here将对其进行阴影处理,以便。重
我刚刚开始制作一个使用主机卡模拟(HCE)的应用程序,我做了各种各样的工作。我需要该应用程序使手机的行为像一张卡,而另一部手机的行为像一个NFC阅读器,并扫描它,反之亦然,以便交换一个非常小的信息-身份证号码。 我已经完成了一些功能单元,如ProcessDirecdApdu和定义AID,但我并不真正理解它是如何工作的。 这是我目前的代码。。。 @TargetApi(19)公共类主要活动扩展Host
如今体检车数字化系统这个大CASE摆在面前,那DAP看来也不过尔尔,想到这里,绝影心中反倒充满了大无畏精神:反正DAP是让我做死了,一人做事一人当,大不了就是扣我奖金罚我加班,让我把这体检车数字化系统搞出来,什么指纹识别、照片认证,能加上去的高级技术都加上去,那还不领先个同类产品三五年,到时候,我绝影就牛B了!让暴风雨来得更猛烈些吧! 绝影做好了引颈就戮的准备,周总却说:“DAP的事情我们先放一放
在使用swift教程时,我开始编写一个自定义的方法来检查给定的是否为素数。 在编写完它之后,我意识到它工作正常,但发现在一些相当大的数字上执行有点慢(仍然比)。 所以我用objc编写了相同的代码,并且代码的执行速度快得多(是66倍)。 以下是swift代码: 和对象代码: 在中: 这就产生了:
问题内容: 我需要创建一个“真实的”动态JPA 。我得到的陈述。看起来像: 这是我实现的: 我试图构建一个big ,其中包含所有其他谓词,并将其添加到中,但这些谓词再次覆盖旧值。似乎没有可能添加而不是更改谓词:-( 实际的项目更加复杂,因为有些对需要使用,而另一些需要使用。但这还不够:可能有一个额外的声明,如like 。在这里,值必须拆分并创建如下语句: UPDATE和SOLUTION 得到两个列