2010-01-22 45 views
1

我有jsp/struts應用程序需要升級。保護url的最佳方法,使只有定義方可以相互交互

目前我們只有1個網絡系統(分支),現在我需要升級並構建另一個代表總部的網絡系統。總部和分支機構是不同的領域。總部可以在總部頁面看到4個分支。我們需要登錄才能訪問總部和分支機構。如果HQ希望看到一個分支的細節,我們可以點擊的鏈接,如

Total attack : <a href="https://www.branch_A.com/xxx/sss/?sss=333">105</a> 

我的問題是如何保護URL,這樣的通信只能由總部和做branch_A.com服務器安全?如果我們使用來自其他IP的URL,它應該顯示未經授權的消息。

我已經完成了在分支中使用request.getRemoteAddr()來控制IP,但它不夠安全。

任何人都可以幫助我提出如何保護此網址的想法?

回答

2

我們需要登錄

所以,你已經有一個登錄系統。正如你已經提出這個問題,這聽起來像是一個本土的登錄系統,否則你可能只是配置了容器管理的身份驗證,以檢查任何登錄的用戶/角色的特定url模式。

你基本上只需要檢查登錄的用戶何時具體的url模式被請求。過濾器非常適合這一點。讓我們假設你的自產自銷的登錄系統會將登錄的用戶在會話範圍,然後過濾器只需要測試它的存在:

if (((HttpServletRequest) request).getSession().getAttribute("user") != null) { 
    chain.doFilter(request, response); // User is present. Just continue request. 
} else { 
    ((HttpServletResponse) response).sendError(HttpServletResponse.SC_UNAUTHORIZED); // Error 401. 
} 

地圖這個過濾器在web.xmlurl-pattern相匹配的要求,你想在登錄的用戶上進行過濾。您甚至可以通過添加用戶角色再進一步,並且登錄用戶具有訪問URL的正確角色。

0

我會看看使用客戶端(和服務器)SSL證書。根據ApacheIIS(或使用搜索引擎進行設置),您可以使用這些指南

1

使用.htaccess限制傳入IP?或者在httpd.conf /虛擬主機中進行配置。甚至防火牆?

某事像:

order allow,deny  
deny from 123.45.6.7 
deny from 012.34.5. 
allow from all 
+0

看來如果我們控制使用這個.htaccess,另一個ip不能訪問它。 忘記添加更多信息... 分支本身可以從任何地方訪問(僅限訪問該分支)。 但是,從總部,我會把一些標誌/狀態的URL說,這是從總部訪問 – 2010-01-22 09:52:01