2011-11-18 355 views
1

我有一個搜索頁面的網址(例如http://x.y.z/search?initialQuery=test)。它不是一個webservice端點,它只是一個基本的url(通過Spring控制器)。訪問頁面沒有任何安全性,您可以在瀏覽器中輸入鏈接,它會呈現結果。如何限制訪問我的網頁

我想要的是找到一種方法來防止其他網站從提交申請到這個網址,除非它們被明確允許的。

我構建了一個篩選器,它可以攔截對此頁面的所有請求,並執行一些驗證。如果驗證失敗,他們將被重定向到另一頁。

問題是執行什麼驗證......我試圖使用referer字段來查看請求是否來自「允許」網站,但我知道referer字段並不總是填充並且很容易被僞造。

有沒有辦法做到這一點?

我們也有IHS,所以如果有什麼事情可以在那裏完成,那將是很棒的。

+0

是您的網頁,供任何人訪問或者只是登錄到您的網站的用戶?因爲如果只是爲了登錄的人,你可以保護它不被任何沒有登錄到你的網站的人訪問...... – Luke

+0

我建議用戶只是想要保護頁面的建議:/ – Luke

+0

@Coulton我們的應用程序在公司內部。該應用程序擁有SSO,基本上所有員工都會通過SSO。所以任何人都可以訪問該頁面。問題是我不希望其他公司網站鏈接到此頁面,除非我們已授權該網站。 – aos37

回答

0

我建議實行某種系統允許用戶登錄,如果你真的想保護一個頁面被訪問。

你可以嘗試檢測傳入請求的IP地址,但我成像,這可以很容易地欺騙。

實際上,公開的頁面對於您設置的限制開放任何形式的詢問。也許限制頁面返回的數據是更實際的選擇?

這是網站,如Facebook和Twitter實現oAuth防止資源被未授權的用戶所訪問的原因。

0

你怎麼樣只有在引用頁已經沿着所謂的「令牌」或東西已被設置爲你給那將點擊搜索頁面中的每個應用程序的值POST變量傳遞運行的結果。如果您使用查詢字符串獲取該頁面的請求,但是沒有爲「token」發送POST值,那麼您知道它是未經授權的請求,並且可以相應地處理它。

0

如果您知道可以聯繫您的服務的網站的IP,可以將Apache作爲代理並使用access control來允許/拒絕訪問特定的目錄/ URL。

0

我假設你想避免你的網站「抄襲」的機器人,但要允許人們訪問你的搜索頁面。

這是一個相當普遍的要求(谷歌「反刮」)。按照魯棒性的降序排列(但用戶友好度降序):

  • 根據HTTP標頭(IP地址,用戶代理,引薦來源)阻止請求。
  • 實施某種形式的CAPTCHA系統的
  • 要求用戶訪問搜索網址
之前登錄

您可以買一些現成的,貨架魔力在於(聲稱)做這一切的你,但如果你的數據足夠有價值,那些想要它的人會僱用機械特克斯來獲得它......

0

作出認證安全。 您可以使用openssl或java keytool 進行自簽名認證,您將不得不向您的客戶發送證書副本。

如果這個客戶端沒有這個證書,它將無法調用你的服務。

,並發表烏爾網絡container.I證書啓用不知道回合其他容器但在Apache Tomcat上 ,美國可以做到在烏爾server.xml中的連接器標籤