如何避免在JavaScript中对敏感值进行硬编码?

时间:2015-04-16 23:09:40

标签: javascript security

我正致力于将AngularJS置于现有的Rails API之上。部分身份验证过程涉及传递"密钥"。

我需要传递密钥才能进行身份验证,但我无法想出任何传递密钥的方法,而不会将其实际包含在JavaScript中的某个位置。

我认为这是一个共同的挑战,或者我们做错了一些事情。如何避免对此密钥进行硬编码?

2 个答案:

答案 0 :(得分:1)

通常我所看到的是客户端从API请求用户特定的令牌,然后根据请求通过HTTPS发送回来。

如果在所有客户端共享密钥,那么您必须完成更多工作。处理此问题的一种方法是创建一个代理,该代理在前端生成并接受特定于用户的令牌,并在后端使用共享密钥。 JS会与代理人交谈。

答案 1 :(得分:0)

如果用户无法弄明白,就没有办法做到这一点。即使你没有将它包含在js中(这本身几乎是不可能的),任何人都可以使用他们的浏览器devtools来检查网络请求并以这种方式查看密钥。