2013-01-16 102 views
1

我有兩臺服務器,讓我們稱他們爲服務器1和服務器2.服務器2上有一個Web應用程序,可以說,顯示帖子。此應用程序在http://www.2.com/showPosts上可用,每個人都可以訪問此頁面。此應用程序還可以遠程添加帖子。要做到這一點,你必須去頁面http://www.2.com/addPost並填寫表格。限制訪問一個網站只有一臺機器

我想要做的只是將訪問第二頁(/ addPost)限制爲只有一臺機器,即服務器1,這樣只有我可以進入此頁面並填寫此表單,其他人得到404.如何做到這一點?

編輯: 謝謝你的回答。我已經根據他們做了更多的閱讀,現在可以讓我的問題更加精確一些。我確實需要做的是通過服務器對客戶端進行身份驗證,whis與單向ssl身份驗證相反,您通過客戶端對服務器進行身份驗證。我認爲任何一種基於IP的認證都太弱,我需要某種證書。

+1

我會在不同的端口上運行它。然後你知道沒有其他機器可以訪問那個端口。 –

+0

@PeterLawrey除非有人碰巧運行端口掃描器或以某種方式發現地址。然後它回到原點。 – tucuxi

+0

@tucuxi我希望OP的Web服務器有某種防火牆。在這種情況下,第二個管理端口將不能從他/她不想要的任何機器訪問。如果他們可以在同一臺機器上運行端口掃描器,那麼你是對的,但是如果可能的話,我懷疑你有真正的問題。 –

回答

0

保護您的http://www.2.com/addPost帶有隻在一臺機器上的瀏覽器中存在的證書。

+0

我想過證書,但我不知道如何處理它們。服務器1和2上的兩個應用程序都是Java應用程序 - 您是否知道我應該如何處理這些證書,可能是一些文獻或鏈接到網頁? – dulcyn

+0

一個簡短的谷歌搜索想出了這個,這是接縫是你想要的(至少在第一看)http://it.toolbox.com/blogs/securitymonkey/howto-securing-a-website-with- client-ssl-certificates-11500 – MrSmith42

0

ServletRequest#getRemoteAddr()返回發送請求的客戶端的IP地址。您可以通過匹配客戶端的IP來過濾這些請求。對於其他客戶端,您可以將其重定向到預定義的404 error頁面。

0

您還可以將addPost地址限制爲僅限localhost,併爲更新目的而建立ssh隧道。

0

我想你使用的是Apache Web服務器,那麼你可以配置一個虛擬主機並設置一個訪問規則來拒絕所有的允許來自server1。這裏的documentation

+0

可能是迄今爲止最簡單的解決方案 – tucuxi

+1

這可行,但這個限制將基於ip地址,而且這很容易繞過 – dulcyn

1

你可以在根目錄下使用.htaccess文件:

<Directory AddPost>Allow from www.1.com</Directory> 

這隻讓www.1.com訪問的頁面。如果AddPost是文件,請使用<Files AddPost></Files>

希望這會有所幫助!

0

如果它是一個Tomcat服務器,您可以在web.xml中定義一個過濾器,該過濾器將僅從允許的來源過濾請求。

相關問題