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='http://www.msn.com/#news/'"></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">标记进行缓存.
补充说明
我还在考虑是否不是加载谷歌,如果不是最好用无辜的信息在本地转换你的网站.这看起来不如加载谷歌(每个人都这样做)可疑,你可以在本地完成所有操作而无需重新加载页面.
当他们点击恐慌按钮时,你会做一些快速(和跨浏览器兼容)的DOM操作来改变你网站上的有罪信息并使它看起来无辜(可能只是改变文本,它必须快速).通过这种方式,它在本地完成,在当今的绝大多数浏览器中几乎是即时的.您不必担心重新加载/服务器,因为脚本应该已经加载并准备就绪.如果你保持相同的外观和感觉,用户只是导航到网站的不同页面.从你的网站看起来不要太明显它是一个危机网站.当然,您无法导航回原始内容.我还会在恐慌按钮上明确说明策略是什么,这样用户就不会惊慌失措.
我仍然会尝试更改浏览器历史记录并购买另一个托管诱饵页面副本的域,如上例所示.不仅如果域名是可疑的,而且如果滥用用户点击刷新或回溯到他的历史记录中.您应该将整个网站设为SPA,因为您只能修改当前条目,而不能修改过去的历史记录.当然,这仍然只适用于HTML5浏览器,只需确保不会抛出任何错误,并且脚本的其他部分仍然在旧浏览器中运行.
人们怎么想?这个有什么弱点吗?什么是好的内容替换?
Lee*_*ary 28
既然你说你的实现存在生命危险,我强烈建议教育用户使用多个标签而不是点击一些紧急按钮.
如果您要加载远程资源,我建议您插入一个带有z-index的div:-1和一些虚拟Web内容.单击时,将其z-index移至更高位置以重叠屏幕上的所有内容.
因此,如果我们假设您加载了远程资源并且包含所有未知变量,我们可以假设时间为 - > 0.5 - 10秒
如果你要编写一个程序,可能会杀了人,我强烈建议你不要采取做一些可能需要2的风险 - 12秒拯救他们.
如果你得到了全部的想法,按ctrl + w vs你计划的解决方案,我当然可以保证Ctrl+W会更快.
cru*_*ush 23
这个答案假定历史和地址栏不是问题.至少,不是立即.
朱莉是配偶虐待的受害者.她正在互联网上寻求帮助,她来到你的网站:http://www.crisisprevention.com(这个答案的虚构)
当她正在阅读你的网站时,她听到她的配偶迅速走近房间.她惊慌失措.幸运的是,当你滚动时,你有一个漂亮的大按钮固定在页面上.
她点击此按钮并...
我不喜欢这种方法,原因如下:没有人会相信你只是坐在电脑前盯着Google搜索提示.相信我.我之前尝试过.
我过去常常用Google提示打开标签,如果我在工作中浏览主题,我会切换到Google标签,以便没有人更明智.它起作用了......有点儿.直到人们开始质疑为什么我整天都在盯着Google搜索屏幕.
我已经开始在不同的州开设一个包含各种工作项目的标签.通常,我正在浏览之间的任何东西.所以,现在我实际上完成了一些工作!理解这种方法并不需要科技天才,这就是为什么@ LeeGary的答案可能是最好的.
这是一个你需要做好准备的现实.也许互联网连接在她恐慌的那一刻被打断了.当她等待HTTP GET请求获取可以开始呈现的内容时,当前内容保持显示在页面上...仅,没有内容被检索.Internet连接已断开连接.这可能由于多种原因而发生:
原因在于,当浏览器遇到紧急按钮时,浏览器可能会窒息,并尝试将其移至新站点.
我的解决方案建议您在网站的后台预加载网站.将其加载到一个<div>并隐藏在正常站点后面.如果它是一大堆内容,那么您可以考虑将其隐藏z-index而不是display: none.这样它将被预先渲染(我相信,这里可能是错误的).
现在,她的互联网连接是否已关闭并不重要.她已经有了内容.HTTP GET请求不涉及延迟.它只是立即显示.
如果地址栏是一个问题,您可能仍然可以通过提供与您的域相关的替代网站来缓解这种情况.
例如,采取虚构(对于此答案)域名:http://www.crisisprevention.com
你可以提供一些与解决世界饥饿危机有关的替代文章.
这里的想法是,这是最初的第一眼看上去最诅咒.当配偶走进来,他看到她导航到Google.com时,看到她的恐慌,他会怀疑有什么事情发生,更倾向于调查.同样,如果因为HTTP GET请求缓慢或失败而陷入试图隐藏她的行为的行为,情况会更糟.
Sal*_*ali 16
恐慌按钮有一些大问题:
当她正在读这篇文章时,试图快速点击该按钮的女性的恐慌随机动作怎么样?如果她从第一次尝试中错过按钮怎么办?
因此,如果真的存在可以挽救的人类生命,那么这是一个坏主意.
更好的方法是向他们展示正常的做法(通过某种帮助,然后才能进入这个网站).它可以是这样的:
根据用户的浏览器,您可以为他们提供仅使用键盘的步骤列表(根本不使用鼠标).例如,如果她是铬.
当然,你必须用适当的语言修改你的解释.但这种方式很难被抓住.还要讲述坐在镜子和其他反射表面旁边的东西,如窗户,眼镜和其他东西.让他们尝试使用这些组合一段时间熟悉.
如果涉及人的生命,你必须是专业的,不要使用这些恐慌按钮.特别是如果很容易教人们如何更快更安全地做到这一点.
回答Nobius
我告诉你了,谢谢.但我不同意你的观点.经过很多活动将它放到FB上之后,你真的在FB上看过了吗?我还没有.非技术人员因提出可笑的糟糕想法而臭名昭着,其中一些您可能已经体验过(防止右键点击银行页面以提高安全性,4位数密码更容易从手机输入).按一个按钮听起来更容易,但看看我的步骤列表 - 在压力情况下你唯一需要做的就是按CTRL + W. 您无需考虑选项卡,模式和其他内容.这取决于基本模式 - 见某人,按CTRL + W. 在我看来,这并不难,也很容易记住.到目前为止,记住单击按钮并不困难.你必须在正常的氛围中阅读其他所有内容.
按下2个按钮比移动鼠标要快很多,当你的手指放在它们上面时很难错过它们(做一个实验并让自己处于完全压力状态并尝试快速点击该按钮).另外正如我所提到的 - 我看到至少有四个原因导致panic button情况出现问题,而我看到CRTL + W的原因要少得多.如果涉及人类生活 - 你需要专业.
回答NicolasMoise.为什么人们一直说要按CTRL + W需要技术娴熟?我不是要向人们展示如何使用TOR,VPN,设置加密通道.这只是CTRL + W. 人们学会了如何玩愤怒的小鸟来节省时间(这比记住2个按钮要困难得多),所以人们可以学习CRTL + W来挽救他们的生命.教程可以以这样的方式显示,观察者无法理解你为什么阅读这个(当你看到我的步骤列表时,我不相信第一个猜测会是 - 这是针对女性滥用网站的啊).
但最有可能让人们对错误安全的看法要好得多.答案不是偏离主题的.这个人正在询问如何实施恐慌按钮 - 我正在解释为什么目前存在缺陷,以及他能做些什么来做得更好.它与"我想让通信安全并且我正在使用替代密码"处于同一级别,是的,您可以提高其密码的速度并假装一切正常,或者您可以显示另一种方式.
最后一次尝试解释我的另一点:你必须正确地向人们解释你的方法背后的风险.当人们不能正确解释问题时,一个很好的例子就是白俄罗斯博客的问题,他们认为在互联网上匿名发帖会使他们无法从政府的压制中解脱出来.资源给了他们错误的信念,即如果他们不提供他们的真实身份,他们就会得救.他们了解到这种情况并非如此(当他们被判入狱几年时).
如果有人向他们解释风险我认为他们中的一些人会很乐意学习如何使用任何工具来挽救未来五年.
那么为什么不给女性一些选择:
让他们决定他们想做什么.这样他们就知道风险了.
sym*_*ean 10
我想你还有很长的旅程.
将人们发送到Google页面的原因是
您提供的链接很慢.
如果您想提供一种快速更改屏幕的方法,请在框架集中打开您的网站 - 高度为0的框架中的斗篷,以及全高框架中的您的网站.然后当用户点击框架高度周围的链接交换并重定向到顶层窗口到已加载的页面.
我正在扩大问题的范围,因为点击紧急按钮确保用户不会被抓住.
根据风险以及用户的计算文化程度,需要根据问题发出此问题.
因此,以尽可能最友好的方式向用户提供一些基本的安全知识可能是个好主意.即使用户处于高压力下,他们最好知道他们可以留下什么痕迹.
用户在没有隐私浏览的情况下随时使用您的网站,它将留下非常明显的痕迹.没有正确的方法来检测浏览器是否在私人模式下运行,但您可以在入口处发出警告,他们应该切换到私人模式,以及删除当前的进入历史记录.您可以准备一些屏幕截图以供用户删除历史记录,(或者如果可用,只删除该网站的条目)
如果您使用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键都应触发它,或者按住一个大键(如空格或输入).无论哪种方式,你应该让用户知道这一点,并且可能让他们通过尝试来训练自己.尝试恐慌退出将有助于他们预测恐慌行为以做出正确的推理(预期行为可以缓解),并且他们将接受训练以便这样做,这样他们就更有可能在恐慌中正确地做到这一点时间.
这将是非常简单的,有一个大的,不同颜色的按钮,将引发恐慌.
这取决于具体情况,根据设计,默认情况下重定向到常用的,类似设计的网站可能是明智的.允许用户自己选择退出站点(在做出合理的默认设置之后)也是明智的.