2012-07-04 27 views
1

我有在Internet上運行的應用程序,它也包含一些管理模塊。我不想讓用戶在Internet上訪問我的管理模塊。我希望來自Intranet的請求可以訪問管理模塊。有沒有什麼辦法可以控制這個,而不需要開發一個提供管理組件的新應用程序驗證請求源是否來自Internet或Intranet

+0

你可能想看看:http://stackoverflow.com/questions/9092376/identify-if-request-is-coming-from-local-network-intranet – Samba

+0

@Samba - 有可能很好是一個weblogic特定的解決方案。但無論哪種方式,C#/ ASP.NET解決方案都無濟於事。 –

回答

1

如果您正在使用servlet,則可以添加一個篩選器並分析客戶端IP地址(請參閱this question)。
請注意,無法保證您會以任何方式確定正確的地址。
更好的方法是將此方法與某種認證(用戶/密碼,客戶端證書等)結合使用。

如果可能,單獨的應用程序也會更好。通過這種方式,您可以簡化部署過程(應用程序運行在不同的端口等),並使其更容易擴展,因爲您的管理和常規應用程序負載,安全性和可用性等極有可能具有不同的要求。

0

我不知道這是否會在你的情況下工作,但如果管理模塊 在特定端口接受連接,你可以嘗試關閉這個端口 你的路由器/網關(或任何用於連接內部互聯網設置爲 ),因此不允許外部任何人訪問該模塊。

0

從便攜式Java角度來完成此任務的最簡單方法是創建一個篩選器,檢查IP地址和請求的URL。如果url是管理模塊的一部分,並且IP是內部的,那麼您繼續鏈接。否則,你重定向或中止。

也就是說,Weblogic可能還有其他技術來完成這個任務。但是,看到您正在Weblogic服務器上運行此操作,我將假定這是一個企業級應用程序。在這種情況下,您可能需要考慮將其作爲一個單獨的模塊出於安全目的和負載均衡。隨着越來越多的用戶訪問您的應用程序,您需要有更多的服務器來處理負載。但是,您不可能需要相同的管理模塊容量。因此,將管理模塊作爲自己的應用程序託管將允許您將其託管在一個內部應用程序服務器上,而應用程序本身則分佈在較大的服務器場中。

最後,請記住,欺騙IP地址是相當容易的,所以除非您有其他形式的身份驗證(例如:username/pwd,SSL證書交換等),否則您會將應用程序打開以顯示某些重要信息安全漏洞。

只是在做出架構決策時需要考慮的事情。