0

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

4

6 回答 6

3

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

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

<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 出现在浏览器历史记录中。

于 2009-11-11T15:16:24.820 回答
2

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

您可能想查看有关HTML 元标记的此页面,并查看元标记的 CACHE-CONTROL 和 PRAGMA NO-CACHE 选项。

祝你好运,希望这能帮到你。

于 2009-11-11T15:25:44.577 回答
2

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

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

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

于 2009-11-11T15:28:59.080 回答
2

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

于 2009-11-11T15:49:39.243 回答
1

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

于 2009-11-11T15:24:17.030 回答
1

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

于 2009-11-11T15:34:31.210 回答