2009-06-18 111 views
2

我有一個web服務,通​​過在頁面中插入一段javascript來使用。 JavaScript掃描頁面中的某個字符串,並向我的ASP.NET JSON WebService發出請求。然後JavaScript使用JSON來顯示一些內容。防止直接訪問JSON Web服務

我想做的就是防止任何人直接訪問我的JSON服務。

該服務使用jQuery Ajax請求進行訪問。

這可能嗎?

最好的問候, TheLorax

回答

4

我的經驗主要是用PHP,所以你可能需要的概念,ASP.NET轉換;)

如果代碼是相同的Web應用程序的一部分(或在同一個服務器實例),我想爲了鎖定它,它在身份驗證系統後面,我在會話中存儲了一個變量,表示用戶已通過身份驗證。您可能能夠對ASP.NET和會話狀態做同樣的事情。取決於Web服務或提供JSON的任何服務是否有權訪問該用戶會話狀態。

另一種選擇是在服務器端用私鑰種子創建某種哈希鍵。通過您的請求傳遞給也知道私鑰的JSON服務。這種解決方案的問題在於確保JSON服務正確解密有點協調,而且人們仍然可以通過其他方式使用JSON服務。

-1

不是真的。

如果您有一個已知的用戶組,您可以通過發出一個API密鑰等來阻止他人訪問您的服務。 但是,您的有效用戶將能夠以任何形式訪問您的JSON。

你可以嘗試混淆事物,但這可能是不值得的。

由於您無法關閉此功能,因此您應該接受Web 2.0的混搭精神,如果有人訪問您的服務並以您甚至沒有想到的新創新方式呈現信息,請高興。這應該會讓你的服務更受歡迎。

如果它以某種方式最終導致了實際收入的損失,那麼必須依靠合法的方法來阻止它,因爲技術措施可以被規避。