1

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

4

1 回答 1

1

基本上,如果您将 Java API 公开给世界其他地方,您应该认为这条规则非常重要。您提供的链接完美地解释了原因(如果您不克隆它,您的 API 的使用者将能够随时更改数组)。

如果在您的内部实现中发生违规行为(其他人永远不会接触或使用),您可以降低违规的严重性,因为第三方代码没有修改数组的风险。但是,不要忘记代码是存在和发展的,有朝一日,甚至您的内部类也可能会暴露给世界其他地方。

于 2013-01-21T15:15:53.880 回答