【问题标题】:Hide basic auth credentials in Javascript client在 Javascript 客户端中隐藏基本身份验证凭据
【发布时间】:2015-03-04 10:02:30
【问题描述】:

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

$.ajax({...});

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

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

【问题讨论】:

    标签: javascript api security client basic-authentication


    【解决方案1】:

    您不能在 JavaScript 中存储机密。如果至少用户无法访问它们(F12 调试工具),您就无法保留用户名和密码。即使要使用JavaScript encryption,您仍然需要将密钥存储在客户端上易于被发现的某个位置。

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

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

    【讨论】:

      猜你喜欢
      • 2015-10-23
      • 2010-10-21
      • 1970-01-01
      • 1970-01-01
      • 2021-07-22
      • 2018-07-04
      • 1970-01-01
      • 2011-10-27
      • 1970-01-01
      相关资源
      最近更新 更多