2015-08-22 70 views
1

我期待在使用Angular Azure Mobile Service Client一個項目,我看到這個示例代碼:角Azure的移動服務客戶端API密鑰用法

angular.module('your-module-name').constant('AzureMobileServiceClient', { 
    API_URL : 'https://<your-api-url>.azure-mobile.net/', 
    API_KEY : '<your-api-key>', 
    }); 

是否可以安全使用API​​密鑰在這樣一個AngularJS應用(或任何基於JavaScript的客戶端)?我不確定某人如果擁有這把鑰匙可能會做什麼?

回答

2

在Azure移動服務文檔中找到this

的默認權限,任何與應用程序鍵可以調用自定義 API。但是,應用程序密鑰不被視爲安全 憑據,因爲它可能不會安全地分發或存儲。 考慮限制只有經過身份驗證的用戶訪問其他 安全性。

+0

應用程序密鑰只是說您的網站被授權爲[AuthorizeLevel(AuthorizationLevel.Application)]。但正如你所看到的,人們可以簡單地找出你的密鑰並進行API調用。所以,除非它是一種可以稱爲「匿名」的方法,否則您可能總是希望以用戶身份進行授權。對於其他一切,請使用應用程序級別弗拉基米爾提到的應用鍵可以改變。你可以改變鍵來停止一些攻擊。但是,是的,這是一種「紳士式」的方式來做一點安全。 – beast

1

它是'安全'取決於你正在嘗試做什麼。每個人都可以閱讀Javascript和其中的任何鍵。這個關鍵並不意味着被用作訪問重要信息的密碼。相反,它是爲了防止惡意濫用你的應用程序。

例如,如果有人試圖用每種可能的密碼/用戶名組合每秒登錄1,000次,他們會在每次請求時提交此密鑰。所以你可以調節,或者阻止任何人使用這個鍵。然後你會爲你的應用程序發行一個新的密鑰。如果您有發行這些密鑰的系統,您甚至可以識別正在執行此操作的人員。 它可以阻止DDOS,Bruteforce和其他一些濫用行爲

相關問題