使用JavaScript从浏览器历史记录和后退按钮中删除特定页面?

3

情景:

我有一个关于家庭暴力的敏感网站,其中包含一个“退出”按钮,直接链接到Google。这样,任何访问该网站的人都可以在访客感到不安或不舒服时快速跳转到Google。

我希望能够清除有关此网站的任何引用,包括历史记录和后退按钮功能。基本上,删除任何访问该网站的证据。请记住,并非所有人都知道如何匿名浏览,有些人甚至无法离开家浏览互联网。是的,这种情况非常糟糕。

我尝试使用 location.replace而不是常规链接来防止它们被保存到历史记录中,但它们仍然被保存在历史记录中。

我还尝试使用browser.history.deleteUrl({url:“https://thewebsite”}),但是这会导致错误,因为browser未定义。

这种情况下,从网站上实现这一点是否真的可能?或者还有其他选项吗? 谢谢!


我认为你要使用history.deleteUrl而不是browser.deleteUrl(browser在Web环境中不是默认全局变量),可能需要与history.search结合使用以查找要删除的URL。请注意,并非所有浏览器都有此功能,但你能做的事情有限,大多数浏览器都支持。 - T.J. Crowder
1
@T.J. Crowder,我刚看了一下,而您提供的链接证实了我的猜测:他们正在查看Web扩展API。不幸的是,它们不是在扩展中;它们在网站上的页面中。(如果它们在扩展中,browser会是正确的。请注意,它需要是browser.history.deleteUrl,而不仅仅是browser.deleteUrl。) - Brian Drake
@BrianDrake - 哦,好的,我只是匆忙搜索而已。即使在相同的来源URL上,一个简单的页面也能做到这一点,我还是感到相当惊讶...谢谢!! - T.J. Crowder
我必须说这是一个非常感人的用例。不幸的是,我担心这样的功能可能会被一些不道德的网站滥用。您的网站是否属于某种政府项目或类似项目?在这个领域里是否有官方的网站网络?一个非常遥远且完全盲目的想法是直接联系浏览器,并询问他们是否愿意特别处理您的网站,以便不将其存储在历史记录中,甚至默认安装一个只有您的网站可以访问的扩展程序(例如,Chrome已经有这样的扩展程序,它们在Google Meet中使用)。 - Kaiido
@JosFaber 是的,我理解您的情况。明确一下,我相当确定今天没有针对您问题的技术解决方案(因此SO无法真正帮助您)。最好的方法可能是将情况带到 https://discourse.wicg.io 即使我真的怀疑会提出通用解决方案,但您应该能够从那里接触到各个浏览器并查看他们提供了什么。您可以提示那个扩展API的想法和浏览器可能允许一些注册网站使用预安装的扩展程序,例如 Google Meet 用于其他目的 - Kaiido
显示剩余5条评论
1个回答

0

正如您在问题中所述,您可以使用{{link1:window.location.replace()}}来防止您的网站出现在窗口的历史记录(后退按钮)中。当然,这仅适用于您的网站最初只有一个条目的情况。

正如您也所述,存在一个更大的问题:这不能防止网站出现在浏览器的历史记录中。我认为您无法通过网站上的脚本解决此问题:您需要一些外部解决方案,例如浏览器扩展程序。

(这实际上并没有回答您的问题,但您可以尝试使用伪装网站性质的URL和标题。我听说过这种资源被这样使用的例子。)


针对我的伪装想法,有人要求提供示例并询问可发现性。我指的是Aspire News App,该应用程序曾在Dr Phil的电视节目中亮相。在那个节目中,他们非常重视不展示应用程序的外观,以避免泄露给虐待者。他们还说这个应用程序被伪装成普通应用程序。
当我研究这个答案时,我了解到伪装确实是一个可怕的想法。我毫不费力地在网上找到了关于该应用程序的信息,一篇评论说这个应用程序是“无意义的”,因为“由于所有媒体都报道了这个应用程序,虐待者知道它是什么,该如何寻找”。

我还了解到这个应用程序发布7年后仍存在根本的安全漏洞。这表明即使是处理敏感事务的所谓信誉良好的应用程序也不能被信任。或许这也意味着那些试图从浏览器历史记录中隐藏自己的所谓信誉良好的网站也不能被信任。


伪装网站身份的问题将是可发现性。我猜至少对于定位受众来说,能够在第一时间找到网站和将其隐藏起来免受威胁同样重要。你能否提供一些实现方法的示例,因为这并不明显(至少对我来说)? - Kaiido

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接