2011-07-08 146 views
1

我正在開發一個API,其中網站所有者將其網站網址提交到數據庫,當用戶使用API​​時,javascript主機名將被髮送到我們的數據庫並根據他們在提交時註冊。惡意用戶可能欺騙他們的主機名嗎?如果是這樣,是否有更安全的做法?欺騙Javascript.location.hostname

+2

我不知道我明白。我可以選擇向您發送任意字符串,而不必「欺騙」任何東西。 – Amy

+0

該API通過javascript檢查您的主機名與字符串。 – Trevor

+0

也許document.domain會更好? http://stackoverflow.com/questions/4226111/javascript-difference-between-location-hostname-and-document-domain – Ben

回答

2

任何人都可以發送任意構造的HTTP請求; referer頭文件或window.location的屬性不能被信任(即使用戶不能在其瀏覽器中更改window.location的內容 - 至少在不導致導航的情況下),用戶始終可以觀察到生成的請求該值的結果,然後發送一個HTTP請求與改變)。

如果這將是一個問題,那麼您可能希望與域一起使用數字簽名以確保域未被更改(即,更改域而不更改簽名標記將導致請求無效,並且從域中生成一個簽名標記並不明顯,並且需要您提供給API客戶的一些服務器端後端機制)。