2009-07-14 59 views
4

HTTP Referer是我現在這樣做的方式。由於每個使用此方法的人都知道它不是100%準確的,因爲Referer頭是可選的,也許是擺弄的。如何確保http請求來自特定位置?

看着how-to-ensure-access-to-my-web-service-from-my-code-only我還不確定如何以最簡單的方式去解決這個問題。

的情況:在別人的網站

廣告。使用iFrame可以隨意更改內容/功能。每次行動完成時,我都會支付$ x.xx。因此,我需要確保該行動已經從我說過允許完成的地方完成。

我試圖阻止:

其他一些網站管理員磨磨蹭蹭去 - 「嘿,這是一個很好的工具,讓我把那在我的網站」 所以,正如我所說的頂部,有什麼我的atm是如果引用不匹配我重定向到具有相同工具的頁面,但是無論在該頁面上執行什麼操作,他們都不會花費我任何金錢。

雖然試圖避免上述情況,允許:

我不介意,如果網站管理員/網站所有者我付現金,爲「行動完全」把其他網站上的代碼 - 顯然這是一件好事。更多的報道,網站所有者獲得更多的現金&我得到更多的行動完成,這給我更多的現金。

問題

我有什麼可以讓對方這樣做,我知道所有的請求進入我的網頁是從對方我有沒有一些隨機的協議和。

謝謝:)

重新應用信息等

方網站上有一個iFrame。 iFrame顯示我的一個域名的html/js/php頁面。此頁面使用ajax請求與實際的webservice進行交互,這是一個ruby/sinatra應用程序。我有許多不同的頁面,適合其他各方網站的外觀和感覺。


所以我想在其他方服務器和我的服務器之間的某種喋喋不休是個好主意。然後這個顫音的結果會在iFrame請求期間出現。

但是我不確定對方是否能夠爲在iFrame中服務的域設置cookie - 事實上我很確定它不能。

現在爲了解決這個限制,我可以在可以設置cookie的頁面上包含一個腳本作爲iFrame的一部分。

好上面的思路概括爲:

  • OtherParty服務器發送到我的服務器的請求得到響應。
  • 呈現頁面與響應作爲一個參數去一個< SCRIPT SRC = 「...?參數」 > < /腳本>
  • 我的腳本會設置Cookie
  • 爲腳本的iFrame之前,腳本作爲cookie已在該域上的cookie之前設置發送以及
  • 賓果設置加載第一
  • iFrame的負載與頁面,請求驗證合法

聽起來不錯?

順便說一句我的工具,我想,如果JS被啓用,因此動作完成上只能...

回答

3

如果你真的想保護誰可以加載你的iframe,然後一個做到這一點的方式是通過2條腿OAuth(即讓您值得信賴的合作伙伴「簽署」iframe GET請求)。然後,您的服務器可以授予基於密碼有效簽名和已知簽名方的訪問權限。您需要對已簽名的請求執行相對較短的有效生命週期,以防止其他人將其複製並嵌入到自己的站點中。

這也爲您提供了只需進行初始離線密鑰交換的優點,而不需要您的合作伙伴在iframe插入之前向您提供額外的服務器請求。

+0

太好了,非常感謝那些信息,我將不得不在此:) – SoreGums 2009-11-04 02:13:51