我正在为女性虐待资源中心做一个网站。像这样的很多中心都被中心称为“恐慌按钮”。在绿色栏的每个页面顶部找到一个基本示例here。
链接或按钮的想法是,如果女性正在寻找这个网站的帮助,他们的施虐者或他们不想知道的人走进房间,它允许快速逃脱。有时链接比关闭浏览器窗口快得多,这可能是可疑的。
我看到的问题是,我看到这样做的大多数按钮只会将您发送到谷歌或类似的东西。我打算做这样的事情:
<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='http://www.msn.com/#news/'"></html>'>LEAVE WEBSITE NOW!</a>
这样的链接会将您滚动到某些实际内容。它不是一个空白的谷歌搜索,但也不是一个可以被视为可疑的非常具体的东西。
我知道阻止推介者是好的,但即使使用该解决方案,您也可以点击浏览器上的后退按钮并抓住它。对于这个问题,我想我可以做一些事情:
HTML
<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
来禁用显示此站点的后退按钮。
这仍然是一个技术问题。辩论很有帮助,但我仍然需要一个有效的技术解决方案。有人认为他们能够将所有这些想法融合成一些功能性的东西吗?我会立即自己动手,并发布我想出的任何内容。谢谢大家。
答案 0 :(得分:37)
(ALMOST)FINAL EDIT
好的,我已经阅读了所有评论,这是我认为最好的解决方案,但我也想到了一个全方位的替代方案。我愿意进一步改进/讨论
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.
}
我在我的AWS实例上添加了一个示例54.186.79.95转到该页面,单击按钮,访问另一个页面,然后回击,您现在在54.186.79.95/decoywebsite上,并且没有关于您的记录54.186.79.95/,如果禁用缓存,您的服务器将看到“../decoywebsite”请求并发送一个诱饵页面。遗憾的是,您无法修改整个域名,因此您需要对域名不怀疑。
如果您想摆脱页面内容,我认为最好的方法是使用document.body.innerHTML='';
。您在技术上仍然在页面上,但所有内容都已消失。
下一步是修改您的浏览器历史记录。 window.history.replaceState
(link to docs)是一项HTML5功能,可以修改您的历史记录,而无需重新加载页面或向服务器发送请求。它非常快,但仅适用于现代浏览器。当用户点击应急按钮时,我们将使用假网址替换其历史记录中的当前页面。
如果滥用用户点击回来,您的服务器(Php,python等)将收到您的虚假网址请求。因此,您需要在服务器中拥有另一个端点(如果您不了解端点,请告诉我)。制作一份与原始网站具有相似外观和感觉的良性文章,食谱或天气预报,以避免在滥用者快速浏览网站时产生怀疑。另外,请确保使用<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
标记来缓存浏览器。
补充说明
我还在考虑是否而不是加载谷歌,如果不是最好使用无辜信息在本地转换您的网站。这看起来不如加载谷歌(每个人都这样做)可疑,你可以在本地完成所有操作,而无需重新加载页面。
当他们点击紧急按钮时,你会做一些快速(和跨浏览器兼容)的DOM操作来改变你网站上的有罪信息并让它看起来无辜(可能只是更改文本,它必须快速)。通过这种方式,它在本地完成,在当今的绝大多数浏览器中几乎是即时的。您不必担心重新加载/服务器,因为脚本应该已经加载并准备就绪。如果你保持相同的外观和感觉,用户只是导航到网站的不同页面。从你的网站看起来不要太明显它是一个危机网站。当然,您无法导航回原始内容。我还会在恐慌按钮上明确说明策略是什么,这样用户就不会惊慌失措。
我仍然会尝试更改浏览器历史记录并购买另一个托管诱饵页面副本的域名,如上例所示。不仅如果域名是可疑的,而且如果滥用用户点击刷新或回溯到他的历史记录中。您应该将整个网站设为SPA,因为您只能修改当前条目,而不能修改过去的历史记录。当然,这仍然只适用于HTML5浏览器,只需确保不会抛出任何错误,并且脚本的其他部分仍然在旧浏览器中运行。
人们怎么想?这有什么弱点吗?什么是好的内容替换?
答案 1 :(得分:28)
由于您说实施过程中存在生命危险,我强烈建议教育用户使用多个标签而不是点击某些紧急按钮。
如果你要加载远程资源,我建议你插入一个带有z-index的div:-1和一些虚拟web内容。单击时,将其z-index移至更高位置以重叠屏幕上的所有内容。
因此,如果我们假设您加载了远程资源并且包含了所有未知变量,那么我们可以假设时间为 - &gt; 0.5 - 10秒
如果你打算编写一个可能会杀人的程序,我强烈建议你不要冒险做一些可能需要2到12秒才能保存的程序。
如果你理解了整个想法,按ctrl + w vs你计划的解决方案,我当然可以保证 Ctrl + W 会更快。
答案 2 :(得分:23)
此答案假定历史记录和地址栏不是问题。至少,不是立即。
当她在浏览你的网站时,她听到她的配偶迅速走近房间。她惊慌失措。幸运的是,当你滚动时,你有一个漂亮的大按钮固定在页面上。
点击此按钮并...
我不喜欢这种方法,原因如下:没有人会相信你只是坐在电脑前盯着Google搜索提示。相信我。我以前试过了。
我过去常常用Google提示打开标签,如果我在工作中浏览主题,我会切换到Google标签,以便没有人更明智。它起作用了......有点儿。直到人们开始质疑为什么我整天都在盯着Google搜索屏幕。
我已经开始在不同的州开设一个包含各种工作项目的标签。通常,我正在浏览之间的任何东西。所以,现在我实际上完成了一些工作!找出这种方法并不需要技术天才,这就是为什么@ LeeGary的答案可能是最好的。
这是一个你需要做好准备的现实。也许互联网连接在她恐慌的那一刻就被打断了。当她等待HTTP GET请求获取可以开始呈现的内容时,当前内容保持显示在页面上...仅,没有内容被检索。 Internet连接已断开连接。这可能由于多种原因而发生:
为什么浏览器在遇到紧急按钮时可能会窒息,并尝试将她移至新网站的原因还在继续。
我的解决方案建议您在网站的后台预加载网站。将其加载到<div>
并将其隐藏在正常网站后面。如果它是大量内容,那么您可以考虑将其隐藏z-index
而不是display: none
。这样它将被预先渲染(我相信,这里可能是错误的)。
现在,她的互联网连接是否已关闭并不重要。她已经有了内容。 HTTP GET请求不涉及延迟。它只是立即显示。
如果担心地址栏,您可能仍然可以通过提供与您的域名相关的其他网站来缓解此问题。
例如,采取虚构(对于此答案)域:http://www.crisisprevention.com
你可以提供一些与解决世界饥饿危机有关的替代文章。
这里的想法是,这是最初的第一眼看上去最诅咒。当配偶走进来,他看到她导航到Google.com时,看到她的恐慌,他会怀疑有什么事情发生,更倾向于调查。同样,如果因为HTTP GET请求缓慢或失败而陷入试图隐藏她的行为的行为,情况会更糟。
答案 3 :(得分:16)
恐慌按钮存在一些大问题:
当她正在读这篇文章时,试图快速点击该按钮的女性的恐慌随机动作怎么样?如果她第一次尝试时会错过按钮怎么办?
因此,如果真的存在可以拯救的人生,那么这是一个坏主意。
更好的方法是向他们展示正常的做法(通过某种帮助,然后才能进入这个网站)。它可以是这样的:
根据用户的浏览器,您可以为他们提供仅使用键盘的步骤列表(根本不使用鼠标)。例如,如果她在使用chrome。
当然,你必须用适当的语言修改你的解释。但这种方式很难被抓住。还要讲述坐在镜子旁边以及其他反射表面,如窗户,眼镜和其他东西。让他们尝试使用这些组合一段时间熟悉。
如果涉及人的生命,你必须要专业,不要使用这些恐慌按钮。特别是如果很容易教人们如何更快更安全地做到这一点。
回答Nobius
我告诉你了,谢谢。但我不同意你的观点。 经过很多活动将它放到FB上之后,你真的在FB上看过了吗?我还没有。非技术人员因提出可笑的糟糕想法而臭名昭着,其中一些您可能已经体验过(防止右键点击银行页面以提高安全性,4位数密码更容易从手机输入)。按一个按钮听起来更容易,但看看我的步骤列表 - 在压力情况下你唯一需要做的就是按CTRL + W.您无需考虑选项卡,模式和其他内容。这取决于基本模式 - 见某人,按CTRL + W.在我看来,这并不难,也很容易记住。到目前为止,记住单击按钮并不困难。你必须在正常的氛围中阅读其他所有内容。
按下2个按钮比移动鼠标快很多,当你的手指放在它们上面时很难错过它们(做一个实验并让自己处于完全压力状态并尝试快速点击该按钮)。同样正如我所提到的 - 我看到panic button
情况下出现问题的原因至少有四个,而我看到CRTL + W的原因要少得多。如果涉及人类生活 - 你需要专业。
回答NicolasMoise 。为什么人们一直说要按CTRL + W需要技术娴熟?我不是要向人们展示如何使用TOR,VPN,设置加密通道。这只是CTRL + W.人们学会了如何玩愤怒的小鸟来节省时间(这比记住2个按钮要困难得多),所以人们可以学习CRTL + W来挽救他们的生命。教程可以以这样的方式显示,观察者无法理解你为什么阅读这个(当你看到我的步骤列表时,我不相信第一个猜测会是 - 这是针对女性滥用网站的啊)。
但最有可能让人们对错误安全的看法要好得多。答案不是偏离主题的。这个人正在询问如何实施恐慌按钮 - 我正在解释为什么目前存在缺陷,以及他能做些什么来做得更好。它与&#39;我想要使通信安全,并且我正在使用替代密码&#39;,是的,你可以提高他的密码速度并假装一切正常,或者你可以用另一种方式。
最后一次尝试解释我的附加内容:您必须正确地向人们解释您的方法背后的风险。当人们不能正确解释问题时,一个很好的例子就是白俄罗斯博客的问题,他们认为在互联网上匿名发帖会使他们无法从政府的压制中解脱出来。资源给了他们错误的信念,即如果他们不提供他们的真实身份,他们就会得救。他们了解到这种情况并非如此(当他们被判入狱几年时)。
如果有人向他们解释风险,我认为他们中的一些人会乐于学习如何使用任何工具来挽救未来五年。
那么为什么不给女性一些选择:
让他们决定他们想做什么。这样他们就知道了风险。
答案 4 :(得分:10)
我认为你还有很长的旅程。
将人们发送到Google页面的原因是
您提供的链接很慢。
如果您想提供一种快速更改屏幕的方法,请在框架集中打开您的网站 - 高度为0的框架中的斗篷,以及全高框架中的您的网站。然后当用户点击框架高度周围的链接交换并重定向到顶层窗口到已加载的页面。
答案 5 :(得分:5)
我正在扩大问题的范围,因为点击恐慌按钮可以保证用户不被抓住。
根据风险和用户的计算知识,需要发布此问题的多个问题。
因此,以最友好的方式向用户提供一些基本的安全知识可能是个好主意。即使用户处于高压状态,他们最好知道他们可以留下什么痕迹。
用户在没有隐私浏览的情况下使用您的网站时,会留下非常明显的痕迹。没有正确的方法来检测浏览器是否在私人模式下运行,但您可以在入口处发出警告,他们应该切换到私人模式,以及删除当前的历史记录条目。您可以准备一些屏幕截图,供用户删除历史记录,(或者如果可用,只删除网站条目)
如果你使用cookies,下一个人可以获取这些cookie(即使它们已过期),并且可以理解该网站已被使用。如果可以,请使用自定义标头进行授权,这样就不会在计算机中留下任何痕迹 这可能会迫使您更改应用程序的结构,这可能不是一个好主意。仅在确保用户使用私人浏览会话后才在浏览器中设置cookie。
如果您通过打开页面并检查网络来使用缓存,那么技术娴熟的人可以检测到该站点是否已被访问过。确保明确指示浏览器不要使用响应中的标题进行缓存:
'Cache-Control: no-cache, no-store, must-revalidate'
'Pragma: no-cache'
'Expires: 0'
更改页面后,每个页面都将被放入当前历史记录中(即使在私人浏览会话中),也允许使用后退按钮。如果可以,请在每个页面更改时使用replaceState
,以便后退按钮被破坏。
使用HTTPS来防止窃听。请注意,DNS查询仍然未加密,但我不认为这将是一个问题,除非用户泄漏政府的东西。如果是这样的话,那么网站无论如何都不够安全。
通常,这些应该足以删除跟踪,还要确保您没有使用其他持久层,如localStorage
。
这是一个完全不同的问题,我们需要在计算中加入多个内容
首先,如果这是一个危及生命的情况,我们必须明白,当用户需要启动panic exit
时,他们将承受极大的压力。我们不知道计算机屏幕的位置,我们无法猜测用户在恐慌时做了什么。
最糟糕的情况是屏幕将以威胁可以看到(从远处)屏幕和网站的方式定位。如果是这种情况,那么网站的设计应该与exit site
看起来非常相似,以消除任何怀疑。从一个不同的设计转向白色谷歌即使只是比较屏幕在两个站点之间发出的颜色(在一个相当黑暗的房间里),也不会直接看到屏幕。
如果您只是进行重定向,则可能不足以及时进行更改。您必须在iframe中预加载出口侧,并且在恐慌时,您应该将其置于全屏,然后进行重定向。这将有助于缓存退出站点的静态内容,并使事情看起来更快。确保使用replaceState
代替自然导航来禁用后退按钮。
您必须确保退出路线可以立即轻松地供用户点击。我认为最可能的两种状态是用户正在键入,或用户正在导航。这意味着你应该有退出的键盘快捷键和HTML中的一个大按钮。
我认为使用两次按ESC键都应该触发它,或者按住一个大键(如空格或输入)。无论哪种方式,你应该让用户知道这一点,并且可能让他们通过尝试来训练自己。 尝试恐慌退出将有助于他们预测恐慌行为以做出正确的推理(预期行为可以缓解),并且他们将接受训练以便这样做,这样他们就更有可能在恐慌中正确地做到这一点时间。
这将非常简单,有一个大的,不同颜色的按钮,将引发恐慌。
这取决于具体情况,根据设计,默认情况下重定向到常用的,类似设计的网站可能是明智的。允许用户自己选择退出站点(在做出合理的默认设置之后)也是明智的。
答案 6 :(得分:4)
编辑:另一件需要考虑的事情是,如果用户丢失了互联网连接,这种连接出于各种原因,包括有人断开电缆连接,那么就无法导航到另一个网站。他们可能会被卡在那里,就像在车头灯上的鹿一样,在他们身上inc&#34;页。我认为这增加了实际导航到良性合作伙伴/联属网站的想法的可信度,而该网站反过来直接在他们的网页上加载您的网站iframe。要使您的网站消失,您只需使用已加载到iframe中的JavaScript从DOM中删除您的iframe即可。即使互联网连接失效也会有效。
我会启用Escape键以快速退出。这是键盘上的一个物理的,众所周知的键,用户可以根据需要进行操作,而不是将棘手的鼠标指针移动到虚拟按钮并单击。
编辑:我刚刚意识到早期的海报 提到了Escape键,将其称为&#34; ESC。&#34;我在页面上搜索了&#34; Escape key&#34;在写我的回复之前,却错过了。
编辑:我也会在页面上留下紧急按钮,文字&#34;点击此处或按ESCAPE快速退出。&#34;但是我把一个放在页面顶部,一个放在页面底部。也许我会在页面周围放一条带子。如果访问者点击该边界区域中的任何位置,您的内容就会消失。
还要考虑;为了使恐慌按钮在恐慌情况下相当容易点击,你可能需要使它有点过大,并确保它总是在屏幕上通过在页面滚动时移动它,或者通过在页面上放置多个恐慌按钮,这可能是一种可疑的外观。似乎这些可能想要看起来非常离散的页面,你正在谈论它。
如果您正在使用jQuery,您可以执行以下操作来响应Escape键:
jQuery( function ( $ ) {
$( document ).keyup( function ( e ) {
if ( e.which === 27 ) // escape
{
// clean up...
}
} );
} );
看起来所有建议的解决方案都是关于找出一些方法来快速导航到其他网站,方法是预先加载并快速将其显示在网站顶部,或者清除DOM然后导航离开,或者其他什么。
如果我要采取这种方法,我会有一个普遍良性网站和搜索引擎搜索的清单,我会循环浏览,以便它不相同&#34;搜索黑人女鞋&#34;每次都出现。
但是要把整个概念放在首位呢?使用一个或多个良性诱饵网站,甚至征求不相关的良性商业网站来举办一个看似良性的链接,并将您的网站加载为主页顶部的iframe 中的单页AJAX应用程序?
编辑:您甚至可以通过让您的主页简要说明将要将访问者重定向到合作伙伴网站以确保他们自己的安全并展示一个友好的#34;去&#34;按钮。如果您有多个合作伙伴网站,可以将它们推送到更好的地方。当他们点击时,删除页面的浏览器历史记录,使用URL查询参数重定向到附属网站,该参数告诉联盟会员的引导程序JavaScript立即加载您的iframe。从那时起,联盟的网络服务器上没有额外的负担。这样,您就拥有了一个官方主页,但您可以立即将访问者完全从您的页面上移除。
按Esc键或单击Panic Button只会从DOM中删除iframe,保留良好的主页并且没有浏览器历史记录。 (噗)
您可以通过这种方式缓解浏览器历史记录问题,因为您的链接会运行一些引导程序的JavaScript代码,而您根本无法将浏览器导航到您的网站。
当点击主页中的引导链接时,它会将一个iframe插入到DOM中,将其浮动(绝对定位和z顺序)以将其放置在主机页面的顶部,然后对您进行AJAX调用Web服务,用于检索将加载到框架中的HTML内容。无论是将数据发布到服务器还是检索要显示的数据,框架中的所有其他链接和/或按钮也会对您的服务进行AJAX调用。你永远不会加载一个真正的&#34;页面&#34;在用户的浏览器中。
这种方法的另一个不错的方面是,如果浏览器崩溃或变得不稳定并且必须从任务管理器关闭,这将阻止清理代码运行,那么这很重要,因为你不会#39 ;(必要)有任何可以清理的东西。
我看到任何这些解决方案中出现的一些严重问题,尤其是考虑到生活环境可能会出现在线上:
在浏览器缓存中缓存对象(主要是图像)
路由器/防火墙可能正在记录HTTP / HTTPS请求,受害者可能不知道这一点,并且您没有采取任何措施来清理浏览器
可能会在用户的计算机上安装键盘记录/ screencap间谍软件,而您无法通过浏览器应用程序执行任何操作来减轻这种情况
计算机崩溃,网页浏览器崩溃,崩溃和痕迹遗留下来,因为清理代码无法运行。
正如至少另一张海报所建议的那样(老实说,我只是简单地略过了其他帖子),在安全模式下使用浏览器可以缓解许多这些情况。但这是一个用户培训问题,在最佳条件下用户培训可能会有点疯狂。如果受害者不是非常精通技术,那么要做到正确可能真的很难,特别是如果他们真的处于恐慌模式的情况下,那么平静的思考可能会很困难。
答案 7 :(得分:2)
你可以看一下&#34; Boss&#34;一些旧游戏和网站上的恐慌按钮。我的想法是,如果你的老板过来,你可以快速切换到无辜的东西(当然,你必须先看到它们接近!)。
当施虐者进来时,几乎任何匆忙/疯狂的行动都会引起他们的怀疑。考虑设计屏幕,使它们看起来像一般新闻等(从远处),没有大的标题或图片放弃他们的目的。这通常可以让您有时间悠闲地享受#34;退出网站,没有恐慌。如果恐慌按钮链接将用户带到一个真正的新闻网站,那就更好了(如果它出现得足够快)。
正如其他人所提到的,如果施虐者变得可疑(并且有许多控制狂),那么浏览器上仍有历史记录,他们可以快速找到用户所在的位置。坦率地说,你可以做的并不多,特别是如果用户进入疯狂的恐慌模式试图掩盖他们的轨道,并且施虐者看到了这一点。即使屏幕本身在超时后可以刷新为无辜的东西,浏览器历史记录也会有URL。
考虑建议用户定位计算机,以便施虐者不能从后面偷偷摸摸,或者去图书馆或其他非私人场所使用这个网站。如果屏幕内容从远处看是枯燥的(见上文),它就不应该引起别人的兴趣。
祝你好运!
答案 8 :(得分:2)
您可以显示错误页面而不是已在后台加载的实际站点。也许是假的youtube或google 404页面?我认为这会将额外内容的大小保持在最低限度。
正如其他人所建议的那样,我也会使用转义键。减少丢失它的变化,对于使用鼠标垫的人来说会更容易,并且用户可以在他/她只是浏览网站时保持他/她的手指。
您还可以使用其他选项;页面上的一个按钮本身或让他们知道其他逃生方法(ctrl + w,如前所述)。 也许也是平板电脑用户的姿态?可能有一些库。
当然,您可以更改任务栏中的网址。 (有关如何执行此操作的代码,请参阅其他帖子。)
鼓励他们尝试退出选项。所以他们知道他们做了什么,以及他们如何应对。
答案 9 :(得分:0)
我认为我们可以这样做。我的想法如下: