参考这个CWE-496,它提到由于应用程序将公共数据分配给私有数组,它等同于授予对数组的公共访问权限。
这对我来说不是很清楚,因为通常在你可以使用对象之前,我们必须声明对象。例如:
User user = new User();
我将做两个假设,如果我错了,请纠正我。
- 每个
new Object()人都会创建不同的实例 - 在 User 对象内部,有一个私有数组
userRoles和一个名为setUserRoles(String[] userRoles)
我的问题是,既然对象每次都会声明新的实例,那么 CWE 中定义的情况是如何发生的呢?
例如:
为什么user.setUserRoles()第二个请求会覆盖第userRoles一个请求中的变量值或userRoles其他页面中的变量值?