危机/滥用网站中恐慌按钮的最快退出策略?[已关闭]

2022-08-30 05:00:57

我正在为一个妇女虐待资源中心做一个网站。像这样的许多中心都有这些中心所说的“恐慌按钮”。基本示例位于绿色栏中每个页面的顶部

链接或按钮的想法是,如果一个女人正在查看这个网站寻求帮助,而他们的施虐者或他们不想知道的人走进房间,它允许快速逃脱。有时链接比关闭浏览器窗口快得多,这可能是可疑的。

我看到的问题是,我看到的大多数按钮都是这样做的,只是把你送到谷歌或类似的东西。我将做这样的事情:

<a href="http://www.msn.com/#news" rel="noreferrer">LEAVE WEBSITE NOW!</a>

<a href='data:text/html;charset=utf-8, <html><meta http-equiv="refresh" content="0;URL=&#39;http://www.msn.com/#news/&#39;"></html>'>LEAVE WEBSITE NOW!</a>

像这样的链接会将您滚动到一些实际内容。它不是一个空白的谷歌搜索,但也不是一个非常具体的东西,可以被视为可疑。

我知道阻止引用是好的,但即使使用该解决方案,您也可以点击浏览器上的后退按钮并捕获。对于这个问题,我认为我可以做一些事情:

断续器

<a href="javascript:goNewWin()" rel="noreferrer">LEAVE WEBSITE NOW!</A>

JavaScript

function goNewWin() {
    window.open("backbuttonnewpage.html",'TheNewpop','toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1'); 
    self.close()
}

我发布是因为有生命处于危险之中,我需要一些尽可能接近整体解决方案的东西。你会怎么做?

 

更新 - 3-26-14:
我运行了我正在合作的资源中心在这里发布的一些教育想法,这是他们的答案。“我们的用户甚至需要极大的勇气才能进入我们的网站。当他们来的时候,他们正在寻找一种快速简单的资源来摆脱可能危及生命的情况。在大多数情况下,他们没有时间或精神能力来教育自己以安全的方式浏览我们的网站。当提出“恐慌按钮”的想法时,如果做得好,似乎是我们治疗的大多数受害者总是要求的资源。

在阅读了这里的许多想法之后,似乎一个完整的解决方案将是一个大按钮,它漂浮在左侧的恒定位置。当页面加载时,它会在后台加载另一个站点(可能是ajax调用),因此单击该按钮只会删除覆盖框架。这意味着单击时没有加载时间。为了避免按下浏览器的后退按钮,似乎告诉浏览器不要缓存是必要的,并且可能在每个页面上进行更改以禁用显示此站点的后退按钮。replaceState

这在很大程度上仍然是一个技术问题。辩论很有帮助,但我仍然需要一个有效的技术解决方案。有人认为他们能够将所有这些想法组合成功能性的东西吗?我自己马上就要处理它,并会发布我想出的任何东西。谢谢大家。


答案 1

(几乎)最终编辑

好吧,我已经阅读了所有评论,这是我认为最好的解决方案,但我也想到了一个全本地的替代方案。我愿意进一步改进/讨论

var panic= function(){
    document.body.innerHTML = '';
       //this clears the current html in the body 
       //making it look like the page is loading
    
    if(...){ //check if replaceState is supported so no error is thrown
        var title="Decoy Article Title",
        url="/decoypage"; //another endpoint on your server that gives the decoy website
        window.history.replaceState("", title , url); //replace current history entry
    }

    //should be pretty fast up to this point
    window.location.replace("http://www.google.com"); //load the google page or my alternative.
}

我在54.186.79.95的AWS实例上放置了一个示例 转到该页面,单击按钮,访问另一个页面,然后回击,您现在位于54.186.79.95 / decoywebsite上,并且没有记录您在54.186.79.95 /上,如果禁用缓存,您的服务器将看到“../诱饵网站“请求并发送诱饵页面。不幸的是,您无法修改整个域,因此您需要该域不可疑。

如果你想摆脱页面内容,我相信最好的方法是使用.从技术上讲,您仍然在页面上,但所有内容都消失了。document.body.innerHTML='';

下一步是修改浏览器历史记录。 (链接到文档)是一个HTML5功能,可以修改您的历史记录,而无需重新加载页面或向服务器发出请求。它非常快,但仅适用于现代浏览器。当用户点击紧急按钮时,我们会用假网址替换其历史记录中的当前页面。window.history.replaceState

如果滥用用户点击回来,您的服务器(Php,python等)将收到带有您的虚假URL的请求。因此,您需要在服务器中拥有另一个端点(如果您不了解端点,请告诉我)。制作一篇与原始网站具有相似外观和感觉的良性文章,食谱或天气预报,以避免在滥用者快速浏览网站时产生怀疑。还要确保浏览器的标签不会使用标记进行缓存。<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">

补充说明

  • 理想情况下,您的整个网站(当然除了您的诱饵文章)应该是一个SPA(单页应用程序),这样它只会生成一个浏览器历史记录,您只需要修改该记录即可。
  • 归根结底,我不认为你不能做一个100%万无一失的恐慌按钮,会有办法绕过它。您只需要找到一个具有可接受的安全性和便利性即可。

另一种选择:本地更改有罪信息并修改浏览器历史记录

我也在想,如果不是加载谷歌,如果最好不要用无辜的信息在本地转换你的网站。这看起来比加载Google(每个人都这样做)更不可疑,您可以在本地完成所有操作而无需重新加载页面。

当他们点击紧急按钮时,你会做一些快速(并且跨浏览器兼容)的DOM操作来更改你网站上的犯罪信息,并使其看起来无辜(也许只是改变文本,它必须很快)。这样,一切都在本地完成,这在当今的绝大多数浏览器中几乎是即时的。您不必担心重新加载/服务器,因为脚本应该已经加载并准备就绪。如果您保持相同的外观和感觉,则看起来用户只是导航到网站的不同页面。不要从你网站的外观上太明显地表明它是一个危机网站。当然,您无法导航回原始内容。我还会在恐慌按钮上明确说明策略是什么,以便用户不会惊慌失措。

我仍然会尝试更改浏览器历史记录并购买另一个托管诱饵页面副本的域,如上一个示例所示。不仅域名可疑,而且如果滥用用户点击刷新或回到他的历史记录中。您应该将整个网站设置为SPA,因为您只能修改当前条目,而不能修改过去的历史记录。当然,这仍然只在HTML5浏览器中工作,只要确保没有抛出错误,脚本的另一部分仍然在旧浏览器中运行。

人们会怎么想?这有什么弱点吗?什么会是要替换的好内容?


答案 2

既然你说在你的实现中生命处于危险之中,我强烈建议教育用户使用多个选项卡,而不是点击一些紧急按钮。

我的理由是

  1. 在“紧急情况”时,用户将手移动到鼠标上需要多长时间(假设他们抬起手来打字或触摸头发或任何他们想做的事情),让我们假设他们花了->0.5秒
  2. 在你的示例网站中,绿色栏实际上非常小,坦率地说,并不是每个人都非常准确地用手,眼睛协调(而且鼠标光标加速可能在操作系统和用户配置文件之间有所不同),用户必须将鼠标移动到“Panic”按钮并点击,除非他们是专业的FPS游戏玩家,否则很可能再花>1-2秒
  3. 我的最后一个变量假设是,如果您的脚本涉及加载远程资源,例如 www.google.com,您可以通过假设浏览器是
    • 摩登
    • 已启用脚本
    • 网络速度和延迟是最佳的
    • 缓存已准备就绪。

如果您要加载远程资源,我建议您插入一个带有z索引的div:-1和一些虚拟Web内容。单击时,将其 z 索引移得更高,以重叠屏幕上的所有内容。

因此,如果我们假设您加载了一个远程资源并使用所有未知变量,则可以假设花费的时间为->0.5 - 10秒

如果你要写一个可能会杀死某人的程序,我强烈建议你不要冒险做一些可能需要2-12秒来拯救他们的事情。

通过放置带有说明的横幅来教育您的用户

  1. 打开不会威胁到他们自己生命的标签页(例如 google.com、msn.com、yahoo.com)
  2. 使用您的网站打开另一个标签页
  3. 在您的网站上正常导航
  4. 在紧急情况下,请按谷歌浏览器,IE,火狐,Opera(请确认其他主要浏览器)Ctrl+W

如果你明白了整个想法,按ctrl + w与你计划的解决方案,我当然可以保证会更快。Ctrl+W