2011-03-10 79 views
0

我正在尋找一種很好的方法來防止頁面重複調用自己的情況。遞歸HTTP請求:如何防止頁面自行調用

我有一個頁面,需要渲染的頁面需要對RSS提要進行HTTP請求。如果該RSS源的URL恰好是當前頁面,它將觸發對自身的請求。新的請求將從另一個頁面請求開始,這將啓動另一個請求......這個過程一直持續到當這個遞歸循環中所有可用的連接都忙時站點停止。

的幾個注意事項:

  • 的URL RSS是由用戶輸入。
  • 這是CMS中的頁面,頁面的URL幾乎可以是任何內容,並且可以在輸入RSS URL後進行更改。
  • 在這種情況下,用戶輸入了導致重定向回頁面的遠程服務器的URL。

幾個想法:

  1. 我可以拒絕從本地主機IP的所有請求呈現之前。

  2. 在發送請求之前,我可以在通用位置跟蹤哪些請求處於活動狀態,如果它已經處於對同一地址的另一個請求的中間,甚至不會發送它。

  3. 也許添加一個自定義的用戶代理到請求頭,並拒絕請求,如果該用戶代理被看到?

+0

除非我失去了一些東西,不能(不應該)這個功能更好地作爲一個單獨的模塊(而不是一個頁面)嗎? (或使用RSS處理的處理程序?) – 2011-03-10 17:48:23

+0

嗯,是的。這不是一個簡單的aspx頁面。頁面本身是由處理程序渲染的,並且有已經涉及的模塊。我試圖不讓這個問題掛在細節上。我可能會實現「拒絕本地主機請求」作爲模塊。 – 2011-03-10 18:21:09

回答

0

頁面是否被渲染知道這是自己的地址/ URL(應該),如果是的話不能只是檢查,以確保它的地址不匹配的RSS呢?

+0

它確實有幫助。但在這種特殊情況下,輸入的URL會發送到遠程服務器,該遠程服務器會發送重定向,隨後將加載RSS的框架函數自動執行該重定向。 – 2011-03-11 16:55:20