在 Javascript 客户端中隐藏基本身份验证凭据
Hide basic auth credentials in Javascript client
我需要从我的客户端 javascript 编码一个 ajax 请求 post 使用 jQuery 将一些数据发送到后端 jQuery。
$.ajax({...});
Javascript 代码可以被各种客户端嵌入,所以我在我的后端启用了 CORS
并且请求正常。
后端受 Basic Auth
保护,身份验证 header 存储在 javascript 客户端中。
如何保护我的后端,以便只有我的客户可以 post 数据并防止任何其他人这样做。
您不能在 JavaScript 中存储机密。如果至少用户无法访问它们(F12 调试工具),您就无法保留用户名和密码。即使要使用 JavaScript encryption,您仍然需要将密钥存储在客户端的某个位置,以便它很容易被发现。
即使您信任该用户,XSS 攻击也可能会将此用户名和密码信息泄露给攻击者。
这就是 OAuth 2.0 在 implicit grant 中使用短期访问令牌来处理 public 客户端的原因。
我需要从我的客户端 javascript 编码一个 ajax 请求 post 使用 jQuery 将一些数据发送到后端 jQuery。
$.ajax({...});
Javascript 代码可以被各种客户端嵌入,所以我在我的后端启用了 CORS
并且请求正常。
后端受 Basic Auth
保护,身份验证 header 存储在 javascript 客户端中。
如何保护我的后端,以便只有我的客户可以 post 数据并防止任何其他人这样做。
您不能在 JavaScript 中存储机密。如果至少用户无法访问它们(F12 调试工具),您就无法保留用户名和密码。即使要使用 JavaScript encryption,您仍然需要将密钥存储在客户端的某个位置,以便它很容易被发现。
即使您信任该用户,XSS 攻击也可能会将此用户名和密码信息泄露给攻击者。
这就是 OAuth 2.0 在 implicit grant 中使用短期访问令牌来处理 public 客户端的原因。