在$ .ajaxSetup()中保存密码是否安全?

时间:2014-05-12 13:02:14

标签: jquery ajax

我正在连接到具有基本身份验证的服务器,并在页面的不同部分执行多个ajax。在ajaxSetup中设置密码是否安全:

$.ajaxSetup({ 
   username:        _username,
   password:        _password,
   timeout:         this.dmDuration,
   headers: {
      "Authorization": 'Basic ' + btoa(_username + ':' + _password) }
 });

2 个答案:

答案 0 :(得分:1)

放置密码客户端绝对不安全。

可以像读取请求数据包一样以简单文本截取甚至读取。不是一个聪明的主意。您应该存储密码服务器端。

即使请求是第三方产品,密码也应该在服务器端代码中保护,并且对第三方的请求应该通过服务器端的安全连接。这样,只有编写代码的开发人员才知道密码,最终用户或黑客永远无法看到并可能分发密码。

如果您要写第三方,请编写ajax设置以向服务器端功能发送请求。然后,包含密码的服务器端功能将向服务器发送安全请求,而不会看到密码。

如果要在本地进行ajax调用,可能是为了授权该呼叫。您应首先对用户服务器端进行身份验证,并在成功时为用户开发安全会话以及加密唯一的反CSRF令牌。从那时起,每次调用都应该来自经过身份验证的用户,但必须在任何ajax调用上传递CSRF令牌,以确保调用事实上已由用户提交,而不是来自潜在的CSRF攻击。

答案 1 :(得分:0)

不,这不安全。

大多数服务端平台将允许您定义会话(通常会向客户端提供会话令牌并使用cookie传回)。打开会话后,您将无法获得下次通话的密码。

即。在.net中,您可以使用WCF session感知服务。