危机/滥用网站恐慌按钮的最快退出策略?

Dav*_*ins 122 html javascript

我正在为女性虐待资源中心做一个网站.像这样的很多中心都被中心称为"恐慌按钮".一个基本的的例子被发现这里在每个页面中的绿条的顶部.

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

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

<a href="http://www.msn.com/#news" rel="noreferrer">LEAVE WEBSITE NOW!</a>
Run Code Online (Sandbox Code Playgroud)

要么

<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>
Run Code Online (Sandbox Code Playgroud)

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

我知道阻止推荐者是好的,但即使使用该解决方案,您也可以点击浏览器上的后退按钮并抓住它.对于这个问题,我想我可以做一些事情:

HTML

<a href="javascript:goNewWin()" rel="noreferrer">LEAVE WEBSITE NOW!</A>
Run Code Online (Sandbox Code Playgroud)

JavaScript的

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

我发帖是因为这有生命危险,我需要一些尽可能接近整体解决方案的东西.你会怎么做?

 

更新 - 3-26-14:
我运行的资源中心在这里发布了一些教育理念,这是他们的答案."我们的用户甚至可以在我们的网站上获得极大的勇气.当他们来到时,他们正在寻找一种快速轻松的资源来摆脱可能危及生命的情况.在大多数情况下他们没有时间或心理能力教育自己一个安全的方式来浏览我们的网站.当提出一个"恐慌按钮"的想法,如果做得好,似乎是一个资源,大多数受害者一直要求我们对待."

在阅读了很多这里的想法之后,看起来整个解决方案似乎是一个大按钮,它漂浮在左侧的恒定位置.当页面加载时,它会在后台加载另一个站点(可能是一个ajax调用),这样单击该按钮就会删除重叠的帧.这意味着点击时没有加载时间.为了避免按下浏览器的后退按钮,似乎告诉浏览器不要缓存是必要的,并且可能replaceState在每个页面更改时使用禁用显示此站点的后退按钮.

这仍然是一个技术问题.辩论很有帮助,但我仍然需要一个有效的技术解决方案.有人认为他们能够将所有这些想法融合成一些功能性的东西吗?我会立即自己动手,并发布我想出的任何内容.谢谢大家.

Nic*_*ise 37

(几乎)最终编辑

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

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.
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

补充说明

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

另一种替代方案:局部改变对信息的破坏和修改浏览器的历史

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

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

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

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

  • Angular/Backbone不会对本机JS做任何事情. (10认同)
  • 我确实喜欢自动覆盖历史记录,但您无法确定用户是否使用符合HTML5标准的浏览器.可能,如果他们不精通技术,他们就不会. (2认同)

Lee*_*ary 28

既然你说你的实现存在生命危险,我强烈建议教育用户使用多个标签而不是点击一些紧急按钮.

我的理由是

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

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

因此,如果我们假设您加载了远程资源并且包含所有未知变量,我们可以假设时间为 - > 0.5 - 10秒

如果你要编写一个程序,可能会杀了人,我强烈建议你不要采取做一些可能需要2的风险 - 12秒拯救他们.

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

  1. 打开一个不会威胁到自己生命的标签(例如google.com,msn.com,yahoo.com)
  2. 打开您网站的另一个标签页
  3. 正常浏览您的网站
  4. 在紧急情况下,请按Ctrl+WGoogle Chrome,IE,Firefox,Opera(请确认其他主流浏览器)

如果你得到了全部的想法,按ctrl + w vs你计划的解决方案,我当然可以保证Ctrl+W会更快.

  • 目标受众显然不是非常科技,并且处于非常情绪化或紧张的情况.教育如何以最隐秘的方式使用浏览器(可能是他们说得不好的语言)目前是他们最不关心的问题.如果他们在受教育的那一刻有人进来,他们会怎么做?虽然一般来说他们知道例如ctrl-w肯定是一个好主意,你能保证他们记得吗?一个高度可见的"恐慌按钮"是一个很好的直观的帮助,你可以给他们.其他一切只能是补充. (42认同)
  • 我不知道为什么这会被投票.这个答案很荒谬,如果每个人都知道正确的安全浏览技术会很好.你不能指望一个处于困境状态并且可能第一时间访问你网站的人知道/阅读/理解这一点. (16认同)
  • 老实说,我不明白为什么这会被投票.这是一个可怕且偏离主题的答案,为OP的原始问题引入了更多不必要的复杂性.更好的建议是更大更明确的横幅,而不是额外的标签.不要从经验丰富的开发人员或超级用户掌握键盘快捷键的角度思考这个问题.我的妈妈不会关心,或者更明确地说,不会理解键盘快捷键,这正是它的目标. (11认同)
  • 我认为这是一个好主意,因为它肯定更快/更安全,但它不是恐慌按钮的替代品.您不能指望所有访问者都能阅读并理解您的教程,尤其是在第一次访问时.我认为OP应该有关于安全浏览技术和恐慌按钮的教程. (7认同)
  • 至于历史轨迹,IE的In-Private模式和chrome的Incognito模式 (3认同)
  • @LeeGary Firefox也有私人浏览,它的工作方式相同. (2认同)
  • @crush,不,这不是一个双击按钮的替换.您的方法只有在他们已经阅读并理解您的说明时才有效,这些说明将消除首次访问者和非技术精明的用户.恐慌按钮是一个容易逃脱,每个人都可以理解. (2认同)

cru*_*ush 23

这个答案假定历史和地址栏不是问题.至少,不是立即.

脚本

朱莉是配偶虐待的受害者.她正在互联网上寻求帮助,她来到你的网站:http://www.crisisprevention.com(这个答案的虚构)

当她正在阅读你的网站时,她听到她的配偶迅速走近房间.她惊慌失措.幸运的是,当你滚动时,你有一个漂亮的大按钮固定在页面上.

她点击此按钮并...

它需要她到Google.com

我不喜欢这种方法,原因如下:没有人会相信你只是坐在电脑前盯着Google搜索提示.相信我.我之前尝试过.

我过去常常用Google提示打开标签,如果我在工作中浏览主题,我会切换到Google标签,以便没有人更明智.它起作用了......有点儿.直到人们开始质疑为什么我整天都在盯着Google搜索屏幕.

我已经开始在不同的州开设一个包含各种工作项目的标签.通常,我正在浏览之间的任何东西.所以,现在我实际上完成了一些工作!理解这种方法并不需要科技天才,这就是为什么@ LeeGary的答案可能是最好的.

这需要她...它还在接受她...哦互联网连接问题

这是一个你需要做好准备的现实.也许互联网连接在她恐慌的那一刻被打断了.当她等待HTTP GET请求获取可以开始呈现的内容时,当前内容保持显示在页面上...仅,没有内容被检索.Internet连接已断开连接.这可能由于多种原因而发生:

  • 配偶断开了它.
  • 正在联系的服务器处于极端负载下.
  • 浏览器对内存感到害羞.
  • ISP遇到了问题.
  • 拨号连接/断开(是的,这些仍然存在).
  • 电脑很慢.
  • DNS服务器已关闭.

原因在于,当浏览器遇到紧急按钮时,浏览器可能会窒息,并尝试将其移至新站点.

立即提供替代网站

我的解决方案建议您在网站的后台预加载网站.将其加载到一个<div>并隐藏在正常站点后面.如果它是一大堆内容,那么您可以考虑将其隐藏z-index而不是display: none.这样它将被预先渲染(我相信,这里可能是错误的).

现在,她的互联网连接是否已关闭并不重要.她已经有了内容.HTTP GET请求不涉及延迟.它只是立即显示.

如果地址栏是一个问题,您可能仍然可以通过提供与您的域相关的替代网站来缓解这种情况.

例如,采取虚构(对于此答案)域名:http://www.crisisprevention.com

你可以提供一些与解决世界饥饿危机有关的替代文章.

这里的想法是,这是最初的第一眼看上去最诅咒.当配偶走进来,他看到她导航到Google.com时,看到她的恐慌,他会怀疑有什么事情发生,更倾向于调查.同样,如果因为HTTP GET请求缓慢或失败而陷入试图隐藏她的行为的行为,情况会更糟.

  • 如果替代网站可以拥有与真实网站相同的外观和感觉,那将是一件好事:颜色,布局.因此,如果施虐者在进入房间时看到了他眼角的位置,那么它似乎会闪烁一点 - 而不是改为另一个网站. (3认同)

Sal*_*ali 16

恐慌按钮有一些大问题:

  • 很难点击它(你必须准确)
  • 选择它需要时间(如果你在没有鼠标的笔记本电脑上,那么会花费大量的时间)
  • 它可以节省你的历史
  • 它可以通过后退按钮/退格键访问.

当她正在读这篇文章时,试图快速点击该按钮的女性的恐慌随机动作怎么样?如果她从第一次尝试中错过按钮怎么办?

因此,如果真的存在可以挽救的人类生命,那么这是一个坏主意.

更好的方法是向他们展示正常的做法(通过某种帮助,然后才能进入这个网站).它可以是这样的:

根据用户的浏览器,您可以为他们提供仅使用键盘的步骤列表(根本不使用鼠标).例如,如果她是铬.

  1. 打开你喜欢的网站(FB,推特,有趣的兔子,假装你正在做某事).
  2. 按CRTL + SHIFT + N(打开隐身窗口),这将不允许退格/历史记录技巧
  3. 进入我们的网站(没有copypasting来防止检查你的缓冲区内)
  4. 阅读这些内容并始终将手靠近CRTL和W键盘
  5. 在紧急情况下按CRTL + W.
  6. 继续主演你的FB,推特,有趣的兔子

当然,你必须用适当的语言修改你的解释.但这种方式很难被抓住.还要讲述坐在镜子和其他反射表面旁边的东西,如窗户,眼镜和其他东西.让他们尝试使用这些组合一段时间熟悉.

如果涉及人的生命,你必须是专业的,不要使用这些恐慌按钮.特别是如果很容易教人们如何更快更安全地做到这一点.

回答Nobius

我告诉你了,谢谢.但我不同意你的观点.经过很多活动将它放到FB上之后,你真的在​​FB上看过了吗?我还没有.非技术人员因提出可笑的糟糕想法而臭名昭着,其中一些您可能已经体验过(防止右键点击银行页面以提高安全性,4位数密码更容易从手机输入).按一个按钮听起来更容易,但看看我的步骤列表 - 在压力情况下你唯一需要做的就是按CTRL + W. 您无需考虑选项卡,模式和其他内容.这取决于基本模式 - 见某人,按CTRL + W. 在我看来,这并不难,也很容易记住.到目前为止,记住单击按钮并不困难.你必须在正常的氛围中阅读其他所有内容.

按下2个按钮比移动鼠标要快很多,当你的手指放在它们上面时很难错过它们(做一个实验并让自己处于完全压力状态并尝试快速点击该按钮).另外正如我所提到的 - 我看到至少有四个原因导致panic button情况出现问题,而我看到CRTL + W的原因要少得多.如果涉及人类生活 - 你需要专业.

回答NicolasMoise.为什么人们一直说要按CTRL + W需要技术娴熟?我不是要向人们展示如何使用TOR,VPN,设置加密通道.这只是CTRL + W. 人们学会了如何玩愤怒的小鸟来节省时间(这比记住2个按钮要困难得多),所以人们可以学习CRTL + W来挽救他们的生命.教程可以以这样的方式显示,观察者无法理解你为什么阅读这个(当你看到我的步骤列表时,我不相信第一个猜测会是 - 这是针对女性滥用网站的啊).

但最有可能让人们对错误安全的看法要好得多.答案不是偏离主题的.这个人正在询问如何实施恐慌按钮 - 我正在解释为什么目前存在缺陷,以及他能做些什么来做得更好.它与"我想让通信安全并且我正在使用替代密码"处于同一级别,是的,您可以提高其密码的速度并假装一切正常,或者您可以显示另一种方式.

最后一次尝试解释我的另一点:你必须正确地向人们解释你的方法背后的风险.当人们不能正确解释问题时,一个很好的例子就是白俄罗斯博客的问题,他们认为在互联网上匿名发帖会使他们无法从政府的压制中解脱出来.资源给了他们错误的信念,即如果他们不提供他们的真实身份,他们就会得救.他们了解到这种情况并非如此(当他们被判入狱几年时).

如果有人向他们解释风险我认为他们中的一些人会很乐意学习如何使用任何工具来挽救未来五年.

那么为什么不给女性一些选择:

  • 您可以立即使用方法A,以下是您可能遇到的问题列表.
  • 你可以使用方法B,它在第一次读取和理解某些东西时需要X分钟.然后,您的可能问题列表会减少到较小的列表.

让他们决定他们想做什么.这样他们就知道风险了.

  • 我没有投票,但我不同意你的说法,这是荒谬的.一个恐慌按钮是英国很多慈善机构和国会议员为在网上欺负并且不知道从谁那里获得帮助的青少年而在Facebook上投放的东西.在紧张的情况下按一个按钮要容易得多,然后必须提前记住一系列长的步骤,并且在出现这种情况时不会出现任何问题. (14认同)
  • 没有冒犯,但我认为你不明白我和Nobilis想要的观点.你说Ctrl + W更快/更安全,我同意.在我们不同意的地方,您不能指望每个访问者都知道或记住Ctrl + W只是因为您在网站的某个地方提到过它.此外,OP专门要求一个恐慌按钮. (4认同)
  • @Mark很好,OP确实说它是一个基本的:)但我想指出这个概念是已知的,熟悉的,在我看来更适合非技术人员.你知道按钮是什么,你按下它.对标签,私人模式和键盘快捷方式的思考可能会更加复杂,对于偶尔可能只是偶尔浏览网页的人来说也不那么熟悉. (2认同)
  • @Salvador这个答案是偏离主题的.这就像是:"哦,你是一个虐待关系,有人监视你的每一个动作,为什么不花些时间阅读和理解这个关于正确浏览技术的长篇教程,这样你下次访问网站时就会安全(那个假设你没有被抓到阅读教程)".假设所有用户都精通技术的任何系统都将不可避免地失败.同样,我们并不是说你的方法是坏的还是慢的(它实际上更快更安全)但你不能指望每个访问者都知道这一点,这就是你需要一个恐慌按钮的原因. (2认同)

sym*_*ean 10

我想你还有很长的旅程.

将人们发送到Google页面的原因是

  1. 它加载速度非常快
  2. 无论如何它很可能会被缓存
  3. 它呈现得非常
  4. 它真的很好地优化了
  5. 我提到它的速度快吗?

您提供的链接很慢.

如果您想提供一种快速更改屏幕的方法,请在框架集中打开您的网站 - 高度为0的框架中的斗篷,以及全高框架中的您的网站.然后当用户点击框架高度周围的链接交换并重定向到顶层窗口到已加载的页面.


Umu*_*acı 5

我正在扩大问题的范围,因为点击紧急按钮确保用户不会被抓住.

根据风险以及用户的计算文化程度,需要根据问题发出此问题.

因此,以尽可能最友好的方式向用户提供一些基本的安全知识可能是个好主意.即使用户处于高压力下,他们最好知道他们可以留下什么痕迹.

痕迹

浏览记录

用户在没有隐私浏览的情况下随时使用您的网站,它将留下非常明显的痕迹.没有正确的方法来检测浏览器是否在私人模式下运行,但您可以在入口处发出警告,他们应该切换到私人模式,以及删除当前的进入历史记录.您可以准备一些屏幕截图以供用户删除历史记录,(或者如果可用,只删除该网站的条目)

饼干

如果您使用cookies,旁边的人可以得到这些Cookie(即使他们是过期的),并且可以理解,这个网站已被使用.如果可以,请使用自定义标头进行授权,这样就不会在计算机中留下任何痕迹.
这可能会迫使您更改应用程序的结构,这可能不是一个好主意.仅在确保用户使用私人浏览会话后才在浏览器中设置cookie.

高速缓存

如果您通过打开页面并检查网络来使用缓存,那么技术娴熟的人可以检测该站点是否已被访问过.确保通过在响应中使用这些标头明确指示浏览器不要缓存:

'Cache-Control: no-cache, no-store, must-revalidate'
'Pragma: no-cache'
'Expires: 0'
Run Code Online (Sandbox Code Playgroud)

返回键

在更改页面时,每个页面将被放入当前历史记录中(即使在私人浏览会话中),允许使用后退按钮.如果可以,请replaceState在每个页面上使用更改,以便后退按钮被破坏.

加密

使用HTTPS来防止窃听.请注意,DNS查询仍然是未加密的,但我不认为这将是一个问题,除非用户泄漏政府的东西.如果是这样的话,无论如何,网站都不够安全.

通常,那些应该足以删除跟踪,还要确保您没有使用其他持久层localStorage.

紧急按钮

这是一个完全不同的问题,我们需要在计算中包含多个内容.
首先,如果这是一个危及生命的情况,我们必须明白,当用户需要启动时,他们将处于极度紧张的状态panic exit.我们不知道计算机屏幕是如何定位的,我们无法猜测用户在恐慌时做了什么.

屏幕定位问题

最糟糕的情况是屏幕将以威胁可以看到(从远处)屏幕和站点的方式定位.如果是这种情况,那么网站的设计应该与它看起来非常相似,exit site以消除任何怀疑.从不同的设计转向白色谷歌即使只是比较屏幕在两个站点之间发出的颜色(在一个相当黑暗的房间里),也不会直接看到屏幕.

退出速度

如果您只是进行重定向,则可能不够快,无法及时进行更改.您必须在iframe中预加载出口侧,并且在恐慌时,您应该将其置于全屏,然后进行重定向.这将有助于缓存退出站点的静态内容,并使事情看起来更快.确保使用replaceState而不是自然导航来禁用后退按钮.

退出路线

您必须确保退出路线可以立即轻松地供用户使用.我认为最可能的两种状态是用户正在键入,或者用户正在导航.这意味着你应该有退出的键盘快捷键和HTML中的一个大按钮.

键盘退出

我认为使用两次按ESC键都应触发它,或者按住一个大键(如空格或输入).无论哪种方式,你应该让用户知道这一点,并且可能让他们通过尝试来训练自己.尝试恐慌退出将有助于他们预测恐慌行为以做出正确的推理(预期行为可以缓解),并且他们将接受训练以便这样做,这样他们就更有可能在恐慌中正确地做到这一点时间.

鼠标退出

这将是非常简单的,有一个大的,不同颜色的按钮,将引发恐慌.

哪里出口?

这取决于具体情况,根据设计,默认情况下重定向到常用的,类似设计的网站可能是明智的.允许用户自己选择退出站点(在做出合理的默认设置之后)也是明智的.

笔记

  • 如果用户使用隐私浏览和恐慌,浏览器仍将处于隐私浏览状态,这可能会引起怀疑.没有简单的方法.您可以尝试指示用户之后清除历史记录,但他们可能没有足够的时间来使用它.
  • 大部分答案都集中在桌面浏览器上,移动设备上的体验会有所不同,但不是很多.

  • OP询问"如何实现恐慌按钮",然而人们似乎正在回答有关"如何安全地浏览网页"的教程.我想你就是这样,不要告诉我们你需要什么,我们会告诉你的. (3认同)