0

继线程 iOS 6 上的 Safari 是否缓存 $.ajax 结果?

如果 io6 safari 正在缓存非唯一 ajax 调用的结果,那么它也必须缓存调用本身。那么这是否意味着它在登录情况下缓存用户名和密码,从而构成安全风险?

4

1 回答 1

1

简短版本:如果您通过网络以明文形式发送用户名和密码,那么您已经打开了一个巨大的安全漏洞。

长版本:浏览器将基于 URI 进行缓存,因此如果您将用户/密码作为 GET 变量发送,那么是的,它会缓存,是的,这是一个安全风险。但是,即使浏览器没有缓存这个,你仍然做错了什么。第三方只需查看 HTTP 标头即可了解用户/密码是什么。

如果您将此作为 POST 发送,则很难找到用户名/密码。浏览器不会缓存请求,因为 URL 始终相同。但是,仍然可以读取请求的内容并找到用户/通行证。

为了最安全,请使用 HTTPS 并通过 POST 传递值。整个 HTTP 请求都被加密,包括标头。但是,浏览器仍会缓存 URL,因此使用 GET 变量仍然不是一个好主意。

jQuery 文档中关于将 POST 与 ajax 结合使用的示例:

$.ajax({
  type: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" }
}).done(function( msg ) {
  alert( "Data Saved: " + msg );
});
于 2012-09-22T20:08:42.360 回答