java:构造函数直接存储用户提供的数组时的安全性以外的含义

时间:2013-01-21 14:57:51

标签: java arrays security sonarqube

我在工作项目上运行Sonar并发现违规行为'用户提供的数组直接存储'。
 因此,深入了解这意味着什么,我从安全角度(for example...)发现了很多讨论它的东西。因此,当我阅读或听到“安全”时,我正在考虑恶意,破解,数据泄露和其他严重后果 但我想知道还有什么可能出错,尤其是在负载均衡环境中。这会是担心跨会话数据污染的原因吗?一位客户订购的数据因其他人的详细信息而受损?

1 个答案:

答案 0 :(得分:1)

基本上,如果您将Java API暴露给世界其他地方,则应该将此规则视为非常重要。您提供的链接完美地解释了原因(如果您不克隆它,您的API的使用者可以随时更改阵列。)

如果您的内部实施中发生违规(其他任何人都不会触及或使用),您可以降低违规的严重性,因为第三方代码无法修改数组。但是,不要忘记代码的存在和发展,有一天甚至你的内部类可能会暴露给世界其他地方。