php - 阻止 Safari 缓存热门站点

标签 php caching safari

我发现 Safari 的热门站点图像缓存存在重大安全缺陷。对于那些不知道的人来说,Safari 基本上会为您访问的每个页面拍摄快照,这应该对用户有用。我的问题是它甚至会拍摄我网站受密码保护的部分的快照。因此,如果有人掌握了我的用户的一台计算机并且知道在哪里查看,他们就会拥有一整套内容存储库,理论上这些内容应该仅供我的用户查看。

我在其他网站上测试了此“功能”,发现 Gmail 和 hotmail 等网站不会被缓存。好吧,只有 hotmail 登录页面会被缓存,除此之外什么都不会被缓存,而且 Gmail 根本不会被缓存。所以我的问题是:我能做些什么来防止这种情况发生?我已经通过使用

阻止了 FF、IE、Opera 等中的正常缓存
header('Cache-control: no-store, no-cache')

以及 pragma: no-cache 以及书中阻止页面被缓存的所有其他技巧。给出了什么?

最佳答案

更新:对于阅读本文的任何人:这仍然是一个 Unresolved 问题。我什至联系了 Safari 开发团队,他们只是给了我一些建议。

@基兰·艾伦

这是您要求我包含的代码的结果:

Headers sent

array(7) {
  [0]=>
  string(23) "X-Powered-By: PHP/5.2.2"
  [1]=>
  string(38) "Expires: Mon, 26 Jul 1997 05:00:00 GMT"
  [2]=>
  string(50) "Cache-Control: no-store, no-cache, must-revalidate"
  [3]=>
  string(16) "Pragma: no-cache"
  [4]=>
  string(40) "Cache-Control: post-check=0, pre-check=0"
  [5]=>
  string(44) "Last-Modified: Wed, 14 Jul 2010 09:32:56 GMT"
  [6]=>
  string(23) "Content-type: text/html"
}

我目前的理论是 Safari 会在使用 https 的安全网站上禁用快照。

(我知道用这个来回答我的问题不是正确的协议(protocol),但是当我问这个问题时,我不是注册成员(member)。不过,我在最后一个小时内注册了,并且认为我可以声明这个问题是我自己的问题,但是堆栈溢出不允许这样做。)

关于php - 阻止 Safari 缓存热门站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3244481/

相关文章:

iphone - CSS 背景 Sprite 对于 iPhone 来说太大了

php - WHMCS 服务器的屏幕 - 添加自定义字段

php - 我如何在多个表中进行搜索?

php - 用JavaScript代替跨域请求

django - 如何在 Django 测试服务器中防止 HTTP 304

php - Safari 和 php session 在 facebook iframe 中不起作用

php - 过滤数组和过滤数组mongodb的$sum up字段

c# - 缓存信息存储在 ASP.NET 中的什么位置?

javascript - jQuery 如何禁用 AJAX 缓存?

javascript - 为什么在 Safari 中使用 JavaScript 计划 Q1 year 22034 不可靠?