2014-01-08 37 views
3

我需要一個底層web/javascript安全。如何在Web應用程序中使用Javascript安全地訪問Windows Azure移動服務?

How to use an HTML/JavaScript client for Windows Azure Mobile Services,在客戶端的JavaScript,其中包括一個鏈接到MobileServices.Web-1.0.0.min.js後,你應該創建一個客戶是這樣的:

var MobileServiceClient = WindowsAzure.MobileServiceClient; 
var client = new MobileServiceClient('AppUrl', 'AppKey'); 

這意味着包括我在網頁上的JavaScript的AppKey 。我應該擔心AppKey被公開嗎?

而且,它似乎很容易有人在放一個XHR斷點閱讀X-ZUMO-APPLICATIONX-ZUMO-AUTH頭,而在已記錄時,這樣做的用處有所用跨域資源共享白名單減少使得REST調用,但是如何阻止某人使用這些信息將JavaScript添加到頁面並對我的後端數據庫執行任意操作?在這種情況下,將表權限限制爲已通過身份驗證的用戶將無濟於事。

我需要關心嗎?銀行應用程序對這類事情做些什麼?

回答

3

在您共享的同一個鏈接中,應用程序密鑰被定義爲不安全的機制來驗證用戶 - 由移動服務生成並與您的應用程序一起分發並顯示在客戶端生成的請求中的唯一值。雖然對於限制從隨機客戶端訪問移動服務非常有用,但此密鑰不安全,不應用於對您的應用的用戶進行身份驗證。

通過使用ACS或通過開放認證在所有端點上啓用某些認證時,如果您主ASP.Net/PHP等頁面獲得授權,則瀏覽器將通過cookie處理下一個身份聯合體直到你的會話結束。

在大多數具有HTTPS的應用程序中,都可以在中等攻擊下保護Man。此外,cookies上強大的加密邏輯以及非常特定的到期時間也會增加安全性。此外,基於IP地址的檢查肯定有助於提高安全性。

1

ramiramilu的回答涵蓋了大部分問題。還有一個,我會添加更多的東西:

而且,它似乎很容易有人在放一個XHR斷點閱讀X-謨,應用和X-謨-AUTH頭,同時使一個REST調用登錄時

是的,有人可以添加一個斷點並找出它們發送的X-ZUMO-AUTH標頭的值。但是這個頭文件的值對登錄的用戶是特定的(在這種情況下,它會是「攻擊者」[他/她]自己) - 它不能從其他人那裏得到信息。還有更簡單的方法來獲取該標題的值(只需瀏覽到https://<mobileservicename>.azure-mobile.net/login/<authProvider>,輸入憑證後就會看到在URI中編碼的標題)。

+0

X-ZUMO-AUTH標題值不是特定於用戶的。它是所有客戶使用的應用程序密鑰,並且是相同的。這只是停止隨機訪問。 –

+0

這是不正確的。 X-ZUMO-AUTH **特定於登錄用戶**。您可能正在考慮X-ZUMO-APPLICATION。 – carlosfigueira

+0

我的不好。這是X-ZUMO_APPLICATION。抱歉carlosfigueira。 –

相關問題