是否可以使用 jQuery 加密 AJAX 调用以进行身份​​验证?

Posted

技术标签:

【中文标题】是否可以使用 jQuery 加密 AJAX 调用以进行身份​​验证?【英文标题】:Is encrypting AJAX calls for authentication possible with jQuery? 【发布时间】:2010-09-13 23:12:35 【问题描述】:

我对 AJAX 方法还很陌生(不久前我才发现jQuery)。我很想知道是否有在 php 设置上验证用户的方法;安全。

jQuery 是否有任何特殊选项允许使用 HTTPS(或任何其他方式来加密我的 ajax 调用)?

是的,我完全可以将数据发回服务器,但这会破坏乐趣。 :)

【问题讨论】:

【参考方案1】:

要通过 HTTPS 使用 Ajax,您必须通过 HTTPS 加载原始页面。

Same origin policy

所以,从某种意义上说,是的——但不是靠它自己。

【讨论】:

“虽然由于同源策略无法直接向网站查询数据,但 将脚本标签与 JSON 结合使用是 JSONP。您在 ajax 请求中提供了一个 javascript 回调方法(作为字符串)。然后服务器返回 JSON 响应作为此回调函数的参数。 west-wind.com/Weblog/posts/107136.aspx。 JSONP 不使用 XmlHTTPRequest 感谢JSONP的解释。这是否证明最初的海报是正确的? 如果登录框是 http 页面上的弹出窗口——主页或站点的任何部分。我需要让它使用 https 进行 ajax 登录调用,但除非整个站点都被加密,否则我不能这样做?太可笑了…… @Ihnz — 如果您将安全内容加载到不安全的页面中,您将失去安全性。不安全的页面可能会受到中间人攻击,该攻击会注入代码以从安全页面中窃取数据。如果您想要安全性,请使用 SSL,并继续使用它。不要使用 Ajax,将网站的整个使用切换到安全连接。除了前面提到的中间人攻击之外,切换出安全模式会使您受到Firesheep 风格的攻击。唯一可笑的是在不使用 SSL 时期望获得安全性【参考方案2】:

好吧,如果你感兴趣的话。有AES JavaScript implementation。我玩得很开心:)。不过,这可能有点棘手......

【讨论】:

虽然它不是直接回答有关加密 ajax 调用的问题,但它是一个有用的链接。【参考方案3】:

除非 jQuery 已经这样做了(我使用 MooTools,所以我不知道)我强烈建议您通过在查询字符串中使用 $_GET 变量将 AJAX 登录链接到 PHP 会话。这样,即使是通过 HTTPS,您仍然可以知道它与哪个会话相关联,以增加一层保护。

【讨论】:

以上是关于是否可以使用 jQuery 加密 AJAX 调用以进行身份​​验证?的主要内容,如果未能解决你的问题,请参考以下文章

Ajax 调用以通过单击按钮返回填充表单字段 django

jQuery 自动完成嵌套 Ajax 调用

进行 AJAX 调用以将下拉值传递给 python 脚本

渲染 ajax POST 调用以填充 DIV 的问题

AJAX 调用以检索 JSON - 如何将结果格式化为屏幕

调用以变量命名的 jQuery 函数