阻止用户保持从我的网站浏览信息

时间:2009-11-11 15:14:02

标签: asp.net browser-history

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

6 个答案:

答案 0 :(得分:3)

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

编辑:根据评论和帖子,您确实要禁用请求的缓存吗?如果是这样,那么您基本上需要在相关页面的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出现在浏览器历史记录中。

答案 1 :(得分:2)

除了明显的问题,为什么你想要这样做,我认为你将很难从服务器端将信息从浏览器中保存出来。

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

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

答案 2 :(得分:2)

有些网站通过在flash,silverlight,Javascript或其他一些应用程序框架中创建网站来实现这一目标,该框架将URL与显示的内容解除关联。

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

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

答案 3 :(得分:2)

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

答案 4 :(得分:1)

从CSS样式表中删除任何a:访问过的规则。

答案 5 :(得分:1)

将您网站上的所有链接发送到POST请求中,然后点击相同的网址。该页面将是一个简单的asp页面,它返回真实页面。请注意,除了仅阻止您的网站拥有正确的历史记录外,这还有其他副作用。这些可能是也可能不是可接受的效果。