【问题标题】:Prevent user keeping browsing information from my website防止用户保留来自我网站的浏览信息
【发布时间】:2009-11-11 15:14:01
【问题描述】:

我想阻止我的网站将任何信息放入任何用户的浏览器历史记录中。 我正在使用 asp .net 来构建我的网站。知道我该怎么做吗?

【问题讨论】:

  • 任何信息,或者他们来到您的网站后的任何信息?您可以在第一次进入历史记录后使用 javascript 来停止后续页面加载(许多 ajax 应用程序必须解决此问题以允许后退按钮起作用)但您为什么要这样做?跨度>
  • 上面写满了无知的高层管理人员。 ;-)
  • 你想解决什么问题?

标签: asp.net browser-history


【解决方案1】:

不可能。这是一个客户端设置,没有可以从服务器端控制。如果可能的话,这也是一个严重的安全漏洞。

编辑:根据 cmets 和帖子,您真的要禁用请求的缓存吗?如果是这样,那么您基本上需要在相关页面的 HTML <head> 中添加以下一组响应标头:

<meta http-equiv="cache-control" content="no-cache,no-store,must-revalidate">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="0">

我不使用 ASP.NET,但您必须能够以编程方式进行类似操作。检查response 对象,它应该有类似setHeader(name, value) 的方法。

但这仍然不能阻止页面的 URL 出现在浏览器历史记录中。

【讨论】:

  • 我问的是访问过的超链接。
  • 现在我不再理解你了。访问的超链接有什么问题?链接颜色?只需一点 CSS,您就可以控制它。
【解决方案2】:

除了您为什么要这样做的明显问题之外,我认为您将很难将信息从服务器端保留在浏览器之外。

您可能想看看这个关于HTML Meta Tags 的页面,并查看元标记的 CACHE-CONTROL 和 PRAGMA NO-CACHE 选项。

祝你好运,希望这会有所帮助。

【讨论】:

    【解决方案3】:

    一些网站通过在 Flash、silverlight、Javascript 或其他一些将 URL 与显示内容分离的应用程序框架中创建网站来做到这一点。

    如果操作仔细,您可以向用户展示您的所有内容并提供“正常”的浏览体验,但他们在历史记录中看到的唯一内容就是一个 URL。

    如果您想避免任何数据留在客户端上,则需要更加小心。 AJAX 请求可能会被缓存。如果您想更仔细地控制缓存以使数据永远不会写入磁盘,则可能必须使用 Flash 或 Silverlight,而且这些也存在缺陷。有一些方法可以绕过它(例如不使用 HTTP),但从客户端和服务器的角度来看,它变得更加困难。

    【讨论】:

      【解决方案4】:

      当然。始终导航到同一个 aspx 页面并根据 POST 参数动态显示内容。

      【讨论】:

        【解决方案5】:

        从您的 CSS 样式表中删除任何 a:visited 规则。

        【讨论】:

          【解决方案6】:

          将您网站上的所有链接变成 POST 请求,访问相同的 URL。该页面将是一个简单的 asp 页面,它返回真实页面。请注意,这不仅会阻止您的网站拥有正确的历史记录,还会产生副作用。这些可能是也可能不是可接受的效果。

          【讨论】:

            猜你喜欢
            • 2011-08-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-02-12
            • 1970-01-01
            • 2017-03-08
            • 1970-01-01
            相关资源
            最近更新 更多