Angular Azure 移动服务客户端 API 密钥用法
Angular Azure Mobile Service Client API Key Usage
我正在考虑将 Angular Azure Mobile Service Client 用于一个项目,我看到了这个示例代码:
angular.module('your-module-name').constant('AzureMobileServiceClient', {
API_URL : 'https://<your-api-url>.azure-mobile.net/',
API_KEY : '<your-api-key>',
});
在这样的 AngularJS 应用程序(或任何基于 JavaScript 的客户端)中使用 API 键是否安全?我不确定如果有人拥有此密钥,他们可能会做什么?
在 Azure 移动服务文档中找到this:
With default permissions, anyone with the app key may call the custom
API. However, the application key is not considered a secure
credential because it may not be distributed or stored securely.
Consider restricting access to only authenticated users for additional
security.
它是“安全”的,具体取决于您要执行的操作。 Javascript 并且其中的任何键都可以被所有人读取。此密钥并不意味着用作访问重要信息的密码。相反,它是为了防止恶意滥用您的应用程序。
例如,如果有人尝试使用每一种可能的 password/username 组合每秒登录 1,000 次,他们将在每次请求时提交此密钥。因此,您可以限制或阻止任何使用此密钥的人。然后你会为你的应用程序颁发一个新密钥。如果您有一个颁发这些密钥的系统,您甚至可以确定执行此操作的人。
它可以阻止 DDOS、Bruteforce 和其他一些滥用
我正在考虑将 Angular Azure Mobile Service Client 用于一个项目,我看到了这个示例代码:
angular.module('your-module-name').constant('AzureMobileServiceClient', {
API_URL : 'https://<your-api-url>.azure-mobile.net/',
API_KEY : '<your-api-key>',
});
在这样的 AngularJS 应用程序(或任何基于 JavaScript 的客户端)中使用 API 键是否安全?我不确定如果有人拥有此密钥,他们可能会做什么?
在 Azure 移动服务文档中找到this:
With default permissions, anyone with the app key may call the custom API. However, the application key is not considered a secure credential because it may not be distributed or stored securely. Consider restricting access to only authenticated users for additional security.
它是“安全”的,具体取决于您要执行的操作。 Javascript 并且其中的任何键都可以被所有人读取。此密钥并不意味着用作访问重要信息的密码。相反,它是为了防止恶意滥用您的应用程序。
例如,如果有人尝试使用每一种可能的 password/username 组合每秒登录 1,000 次,他们将在每次请求时提交此密钥。因此,您可以限制或阻止任何使用此密钥的人。然后你会为你的应用程序颁发一个新密钥。如果您有一个颁发这些密钥的系统,您甚至可以确定执行此操作的人。 它可以阻止 DDOS、Bruteforce 和其他一些滥用