【发布时间】:2017-04-04 14:23:45
【问题描述】:
我正在使用 Fortify 工具,它指出一个问题为 Race Condition: Singleton Member Field in a jsp Page。它说: 类 rateUs.jsp 是一个单例,所以成员字段 arrayList 在用户之间共享。结果是一个用户可以看到另一个用户的数据。
下面是它指向问题的代码。
<%
ArrayList arrayList = null
arrayList = (ArrayList) request.getSession().getAttribute("SLIST");
%>
我需要在这里改变什么吗?
【问题讨论】:
-
AFAIK jsps 没有任何可变状态,因此它们是否是单例并不重要(尽管我们需要查看您的代码)。可能导致竞速条件的是使用存储在会话中的非头部安全列表:用户可以发出 2 个并行写入列表的请求,从而导致严重的错误(我们曾经有类似的 @ 987654322@ 其中 2 个并发写入导致两个线程中的无限循环。
-
我希望这是一个简单的测试:以两个不同的用户身份登录并验证用户可以看到或看不到的内容。
标签: java jsp singleton race-condition fortify