在Javascript客户端中隐藏基本身份验证凭据

时间:2015-03-04 10:02:31

标签: javascript api security client basic-authentication

我需要从我的客户端javascript代码创建ajax请求,使用jQuery将一些数据发布到后端。

$.ajax({...});

Javascript代码可以由各种客户端嵌入,因此我在后端启用CORS并且请求正常。 后端受Basic Auth保护,auth标头存储在javascript客户端中。

如何保护我的后端,以便只有我的客户才能发布数据并阻止任何其他人这样做。

1 个答案:

答案 0 :(得分:4)

您无法在JavaScript中存储机密信息。如果没有用户能够访问用户名和密码,您无法保留用户名和密码(F12调试工具)。即使要使用JavaScript encryption,您仍然需要将密钥存储在客户端的某个位置,以便轻松地将其发现。

即使您信任该用户,XSS攻击也可能会将此用户名和密码信息泄露给攻击者。

这就是OAuth 2.0在implicit grant中使用短期访问令牌来处理公共客户的原因。