Javascript客户端密钥有什么意义?

时间:2015-08-14 21:37:45

标签: javascript security parse-platform

Part 1 of the Parse Security Series

  

客户端密钥是发给您的用户的,所以任何可以使用客户端密钥完成的任何操作都可以由公众,甚至是恶意黑客来完成。

...为什么客户端密钥存在?

据我所知,登录用户将获得特权,但如果一般公众可以合法使用某些网站功能,为什么还有密钥呢?

2 个答案:

答案 0 :(得分:1)

我认为"客户端密钥"是早期parse.com的遗留术语。现在更好的名称就像" iOS和Android SDK标识符"。当它曾经是iOS sdk /后端时,客户端密钥在编译源中保持相对模糊。

添加了javascript后撤消了。在这里进行推测,但解析可能希望允许已发布应用程序的现有开发人员添加JS,而不会影响他们对原始版本的安全性。所以解析提供了一个新标题和不同的" javascript键"。注意有多少"键"现在有......更像是客户类型标识符,而不是任何安全意义上的密钥。

答案 1 :(得分:0)

无法保留用户的凭据。他们必须以某种方式连接到您的应用程序。仅仅访问Parse后端的行为就需要它。

那你做什么?

在我的情况下,我不会在客户端应用程序中提供Parse密钥;相反,我将它包装在AWS API Gateway之类的内容中,这意味着我可以阻止用户直接访问Parse后端。是的,这意味着我的用户将拥有IAM角色;但我可以锁定它并根据需要撤销(并使用AWS的IAM API来执行此操作)。我也有速率限制能力,否则会导致Parse to just silently drop requests

您也不必为客户端提供JavaScript密钥 - 您可以将其存储在$false应用程序中,并自行管理访问控制。另一层间接总能解决问题。