【问题标题】:Javascript Ajax call using password with special charactersJavascript Ajax 调用使用带有特殊字符的密码
【发布时间】:2013-01-04 22:05:26
【问题描述】:

我有一个 JavaScript 页面,它可以像下面的代码一样进行 Ajax 调用。 PHP 页面位于公司 Intranet 中,需要在域中进行身份验证(不允许使用基本身份验证)。我使用 jQuery 从输入字段中收集用户名 (u) 和密码 (p)。

var u = $('#user').val();
var p = $('#pass').val();

$.ajax({
    url: "http://mydomain/mypage.php",
    username: u,
    password: p,
    error: function () {
    }
}).done(function(html) {
        //Do Stuff
});

该解决方案非常有效...除非用户的密码中有特殊字符。到目前为止,我们似乎受到以下因素的影响:@$ +。

在我看来,收集密码与在 JavaScript 中也充当语法运算符的符号存在一些冲突……但是如何正确地将它们转义为密码?

谢谢!

【问题讨论】:

  • 我很确定它们已正确提交。查看发送的 HTTP 标头。您的服务器是否需要这种格式?
  • 您通过 http 发送用户名和密码作为获取请求?哎呀,安全噩梦。
  • 是的,我知道。我通常不会这样做,但在这种情况下,数据路径是由另一种方法保护的,所以我并不担心。

标签: javascript jquery ajax authentication passwords


【解决方案1】:

您必须对参数进行 URL 编码。对于 JavaScript,请查看 encodeURIComponent。后端框架会理解它,所以不用担心。

【讨论】:

  • 真的吗?我曾期望 jQuery 会在需要时处理它
  • 人们会这样认为,但根据我的经验,不会。
  • @Bergi 也许它只对data 参数这样做,而不是username/password。从来不用它们,虽然很有趣
  • 我刚收到一位用户的回复:这似乎奏效了,至少对 Amp 和 At 来说是这样。谢谢! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
  • 2021-10-12
  • 2014-03-03
  • 1970-01-01
  • 1970-01-01
  • 2022-06-30
  • 1970-01-01
相关资源
最近更新 更多