2017-04-04 29 views
0

我正在使用Fortify工具,並將其指向一個問題作爲競爭條件:單一成員字段在jsp頁面中。它說: 類rateUs.jsp是一個單例,所以成員字段arrayList在用戶之間共享。結果是一個用戶可以看到另一個用戶的數據。如何使Arraylist Member字段在jsp文件中不受Race Condition影響?

下面是它指向的問題的代碼。

<% 
ArrayList arrayList = null 
arrayList = (ArrayList) request.getSession().getAttribute("SLIST"); 
%> 

我需要在這裏改變一些東西嗎?

+0

AFAIK jsps沒有任何可變狀態,因此它們是單身或不重要(我們需要查看您的代碼)。可能導致賽車狀況的是使用存儲在會話中的非安全列表:用戶可以發出2個並行寫入列表的請求,從而導致令人討厭的錯誤(我們曾經有過類似於' HashMap',其中2個併發寫入導致兩個線程中無限循環)。 – Thomas

+0

我期望這是一個簡單的測試:作爲兩個不同的用戶登錄並驗證用戶可以或不可以看到的內容。 –

回答

-1

會話是孤立的,只有持有對相應會話的引用的特定用戶才能訪問。

但是,如果來自會話的對象存儲在其他人共享的變量中,則該數據可能會被其他人看到(或改變)。

更完整的代碼將有所幫助。

相關問題