javascript - panico - ¿La estrategia de salida más rápida para un botón de pánico en sitios web de crisis/abuso?
boton de panico para whatsapp (10)
Reliable Escape
EDIT: Another thing that comes to mind is that if the user has lost Internet connectivity, which happens for all kinds of reasons including somebody disconnecting the cable, then there is no way you could navigate them to another site. They could be stuck there like a deer in headlights on the "incriminating" page. I think this adds credibility to the idea of actually navigating to a benign partner/affiliate site that in turn loads your site in an iframe directly on their page. All you have to do to make your site disappear is delete your iframe from the DOM using JavaScript that is already loaded into the iframe. It would work even if the Internet connection went dead.
I would enable the Escape key for a quick exit. That''s a physical, well-known key on the keyboard that the user can lunge for if they need to, rather than moving a finicky mouse pointer to a virtual button and clicking.
EDIT: I just realized that an earlier poster did mention the Escape key, referring to it as "ESC." I searched the page for "Escape key" before writing my response, but missed that.
EDIT: I''d leave the Panic Button on the page, too, with the text "Click Here or PRESS ESCAPE to Exit Quickly." But I''d put one at the top and one at the bottom of the page. Maybe I''d put a strip all the way around the page. If the visitor clicks anywhere in that border zone your content disappears.
Also consider; to make the Panic Button reasonably easy to click in a panic situation, you''d probably need to make it a little bit oversized and make sure it''s always on the screen by moving it as the page scrolls, or by putting multiple Panic Buttons on the page, which could be kind of suspicious-looking in and of itself. It seems as if these probably want to be pretty discrete-looking pages that you''re talking about.
If you''re using jQuery, you could do something like the following to respond to the Escape key:
jQuery( function ( $ ) {
$( document ).keyup( function ( e ) {
if ( e.which === 27 ) // escape
{
// clean up...
}
} );
} );
Single-Page AJAX App
It looks like all of the suggested solutions are about figuring out some way to quickly navigate to some other site, either by having it pre-loaded and quickly displaying it over the top of your site, or by clearing the DOM then navigating away, or whatever.
If I were going to take that approach, I''d have a laundry list of universally benign sites and search engine searches that I would cycle through so that it isn''t the same "search for black women''s shoes" showing up every time.
But what about turning the whole concept on its head? Use one or more benign decoy sites, or even solicit unrelated benign commercial sites to host a benign-looking link, and load your site as a single-page AJAX app in an iframe on top of the host page (s)?
EDIT: You could even do this by having your home page briefly state that it is going to redirect the visitor to a cooperative partner site for their own safety and show a big friendly "Go" button. If you have multiple partner sites you can push them to, so much the better. When they click, erase the browser history for your page, redirect to the affiliated site with a URL query parameter that tells your bootstrap JavaScript at the affiliate to immediately load your iframe. From that point forward, there is no additional load on the affiliate''s web server. This way, you have an official Home page, but you immediately get the visitor completely off of your page.
Pressing the Escape key or clicking the Panic Button would just delete your iframe from the DOM, leaving the benign host page and no browser history. (Poof)
You could mitigate browser history issues that way since your link would run a bit of bootstrap JavaScript code and you would never actually navigate the browser to your site at all.
When the bootstrap link in the host page is clicked, it would insert an iframe into the DOM, float it (absolute positioning and z-order) to position it on top of the host page, then make an AJAX call to your web service to retrieve HTML content that it would load into the frame. All additional links and/or buttons in the frame would also make AJAX calls to your service, whether posting data to the server or retrieving data for display. You would never load an actual "page" in the user''s browser at all.
Another nice aspect of this approach is that if the browser crashes or becomes unstable and has to be shut down from Task Manager, which would prevent the cleanup code from running, well that won''t matter because you don''t (necessarily) have anything to clean up.
Houston...?
A few serious problems I see with any of these solutions off the top of my head, particularly given the context that lives may be on the line:
cached objects (images, primarily) in the browser cache
the router/firewall might be logging HTTP/HTTPS requests, and the victim may not know this, and nothing you do to clean up the browser will mitigate that
there could be keylogging/screencap spyware installed on the user''s machine and nothing you can do from a browser app will mitigate that
computers crash, web browsers get flakey and crash and traces get left behind because cleanup code can''t run.
As suggested by at least one other poster (honestly, I''ve only briefly skimmed the other posts), using browsers in secure mode should mitigate many of these scenarios. But that is a user training issue and user training can be a little crazy under the best conditions. It could be real tough to get right if the victims aren''t very tech-savvy, especially if they really are in a panic-mode situation where calm thinking might be difficult.
Estoy haciendo un sitio web para un Centro de recursos para el abuso de las mujeres. Muchos centros como este tienen lo que los centros denominan como un "Botón de Pánico". Un ejemplo de uno básico se encuentra here en la parte superior de cada página en la barra verde.
La idea del enlace o botón es para una mujer que estaba buscando ayuda en este sitio web, y el abusador o alguien que no quería saber entró en la sala, lo que le permite escapar rápidamente. A veces, un enlace es mucho más rápido que cerrar una ventana del navegador y eso puede ser sospechoso.
El problema que veo es que la mayoría de los botones que veo haciendo esto simplemente te envían a google o algo así. Voy a hacer algo como esto:
<a href="http://www.msn.com/#news" rel="noreferrer">LEAVE WEBSITE NOW!</a>
o
<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>
Un enlace como ese lo desplazará a algún contenido real. No es una búsqueda en blanco de Google, pero tampoco es algo muy específico que pueda considerarse sospechoso.
Sé que bloquear el referente es bueno, pero incluso con esa solución, puede presionar el botón Atrás en su navegador y capturarlo. Para este problema, pensé que podría hacer algo así:
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()
}
Estoy publicando porque hay vidas en riesgo con esto y necesito algo que esté lo más cerca posible de una solución total. ¿Cómo harías esto?
ACTUALIZACIÓN- 3-26-14:
Ejecuté algunas de las ideas educativas publicadas aquí por el centro de recursos con el que estoy trabajando y esta fue su respuesta. "Se requiere un valor extremo para nuestros usuarios incluso para entrar en nuestro sitio web. Cuando llegan, buscan un recurso rápido y fácil para salir de una situación que puede poner en peligro la vida. No tendrían el tiempo o la capacidad mental en la mayoría de los casos para educarse de una manera segura para navegar en nuestro sitio web. Cuando se presenta la idea de un "botón de pánico", cuando se hace correctamente, parece ser un recurso que siempre es solicitado por la mayoría de las víctimas que tratamos ".
Después de leer muchas de las ideas aquí, parece que una solución total sería un botón grande que flota en una posición constante en el lado izquierdo. Cuando la página se carga, carga otro sitio en el fondo (tal vez una llamada ajax) por lo que al hacer clic en el botón simplemente se elimina el marco superpuesto. Esto significará que no habrá tiempo de carga al hacer clic. Para evitar presionar un botón de retroceso del navegador, parece que es necesario decirle al navegador que no se debe almacenar en caché, así como posiblemente utilizar replaceState
en cada cambio de página para desactivar un botón de retroceso que revela este sitio.
Esta es todavía una pregunta técnica. El debate ayuda mucho, pero aún necesito una solución técnica de trabajo. ¿Alguien piensa que son capaces de unir todas estas ideas en algo funcional? Voy a trabajar en ello de inmediato y publicaré todo lo que se me ocurra. Gracias a todos.
Como dijo que las vidas están en riesgo en su implementación, sugiero encarecidamente educar a los usuarios para que utilicen varias pestañas en lugar de hacer clic en algunos botones de pánico.
Mis razones son
- En tiempos de ''emergencia'', ¿cuánto tiempo lleva el usuario mover sus manos hacia el mouse (suponiendo que levantaron sus manos para teclear o tocar su cabello o lo que quisieran hacer), supongamos que les tomó -> 0.5 segundos
- En su here ejemplo, la barra verde es realmente muy pequeña, para ser franco, no todos son muy precisos con su mano, la coordinación de los ojos (además la aceleración del cursor del mouse puede diferir entre OS y perfiles de usuario), el usuario tiene que mover el toque el botón "Pánico" y haga clic, a menos que sean jugadores profesionales de FPS , es probable que les tome otro -> 1-2 segundos
- Mi última suposición sobre la variable es que si su script implica cargar recursos remotos, por ejemplo, www.google.com, puede poner vidas en riesgo al asumir que el navegador es
- Moderno
- Tiene scripts habilitados
- La velocidad de red y la latencia son óptimas
- Los cachés están preparados.
Si va a cargar recursos remotos, le sugiero que inserte un div con z-index: -1 y algunos contenidos web ficticios. Al hacer clic, mueva su índice Z más arriba para superponer todo en la pantalla.
Entonces, si suponemos que carga un recurso remoto y con todas las variables desconocidas, podemos suponer que el tiempo necesario es de> 0,5 a 10 segundos
Si vas a escribir un programa que podría matar a alguien, te sugiero encarecidamente que no corras el riesgo de hacer algo que podría demorar de 2 a 12 segundos para salvarlos.
Eduque a sus usuarios colocando un banner con instrucciones
- Abra una pestaña que no amenace sus propias vidas (ej. Google.com, msn.com, yahoo.com)
- Abra otra pestaña con su sitio
- Navegue normalmente en su sitio
- En tiempos de emergencia, presione Ctrl + W para Google Chrome, IE , Firefox, Opera (confirme para otros navegadores principales)
Si obtiene la idea completa, presione ctrl + w frente a su solución planificada, sin duda puedo garantizar que Ctrl + W será más rápido.
Creo que todavía tienes un largo viaje por delante.
La razón para enviar personas a la página de Google es que
- se carga muy rápido
- es probable que se guarde en caché de todos modos
- se vuelve muy rápido
- está muy bien optimizado
- ¿mencioné que es rápido?
El enlace que proporcionó es lento.
Si desea proporcionar una forma rápida de cambiar la pantalla, abra su sitio en un conjunto de marcos, con la capa en un marco de altura 0 y su sitio en un marco de altura completa. Luego, cuando el usuario haga clic en el enlace, cambie alrededor de las alturas de los marcos y redirija a la ventana de nivel superior hacia la página que ya está cargada.
Extiendo un poco el alcance de la pregunta, ya que presionar el botón de pánico garantiza que el usuario no sea atrapado.
Hay varias preocupaciones en este problema que deben emitirse en función del riesgo y de cómo el alfabetizado es el usuario.
Como tal, podría ser una buena idea dar al usuario algunos conocimientos básicos de seguridad de la manera más amigable posible. Aunque el usuario está bajo una gran tensión, es mejor para ellos saber qué rastros pueden dejar atrás.
Huellas
Historial de navegación
En cualquier momento que el usuario use su sitio web sin navegación privada, dejará rastros muy evidentes. No existe una forma adecuada de detectar si el navegador se está ejecutando en modo privado, pero puede tener una advertencia en la entrada de que deberían cambiar al modo privado, así como eliminar el historial de entrada actual. Puede preparar algunas capturas de pantalla para que el usuario las siga para eliminar el historial (o, si está disponible, borrar solo la entrada al sitio)
Galletas
Si utiliza cookies, la siguiente persona puede obtener esas cookies (aunque hayan caducado), y puede entender que este sitio ha sido utilizado. Si puede, haga uso de encabezados personalizados para autorización, que no dejarán rastros en la computadora.
Esto puede obligarte a cambiar la estructura de la aplicación, lo que podría no ser una buena idea. Solo configura las cookies en el navegador después de asegurarse de que el usuario esté usando una sesión de navegación privada.
Almacenamiento en caché
Una persona experta en tecnología puede detectar si el sitio ha sido visitado si utiliza el almacenamiento en caché abriendo la página e inspeccionando la red. Asegúrese de indicar explícitamente al navegador que no use el caché al usar esos encabezados en sus respuestas:
''Cache-Control: no-cache, no-store, must-revalidate''
''Pragma: no-cache''
''Expires: 0''
Botón de retroceso
Al cambiar de página, cada página se colocará en el historial actual (incluso en la sesión de navegación privada), permitiendo el uso del botón Atrás. Si puede, utilice replaceState
en cada cambio de página para que el botón Atrás se rompa.
Cifrado
Use HTTPS para evitar escuchas ilegales. Tenga en cuenta que las consultas DNS seguirán sin encriptarse, pero no creo que esto sea un problema a menos que el usuario esté filtrando material gubernamental. Si ese es el caso, un sitio web no sería lo suficientemente seguro de todos modos.
En general, esos deberían ser suficientes para eliminar las trazas, también asegúrese de no estar usando otras capas de persistencia como localStorage
.
Botón de pánico
Este es un problema totalmente diferente y tenemos que incluir varias cosas en nuestro cálculo.
En primer lugar, si este es un escenario que pone en peligro la vida, debemos entender que el usuario estará bajo un estrés total cuando necesite lanzar la panic exit
. No sabemos cómo se coloca la pantalla de la computadora, y no podemos adivinar qué está haciendo el usuario en el momento del pánico.
Problemas de posicionamiento de pantalla
El peor caso sería que la pantalla se posicionaría de forma que la amenaza pueda ver (desde una distancia) la pantalla y el sitio. Si ese es el caso, el sitio debe diseñarse de manera que se vea muy similar al exit site
para eliminar cualquier sospecha. Al pasar de un diseño diferente al blanco, Google se notará incluso cuando la pantalla no se vea directamente al comparar los colores que la pantalla está emitiendo entre dos sitios (en una habitación razonablemente oscura).
Velocidad de salida
Si solo hace un redireccionamiento, puede que no sea lo suficientemente rápido como para realizar el cambio a tiempo. Debe precargar el lado de salida en un iframe, y en el momento de pánico, debe poner eso en pantalla completa, luego hacer la redirección. This will both help on caching the exit sites static contents, and make the things look faster. Make sure you use replaceState
instead of natural navigation to disable back button.
Exit Routes
You must make sure that the exit routes will be available immediately and easily for the user to hit. I think the most possible two states are either the user is typing , or the user is navigating . Which means you should have both keyboard shortcut for exit and a big button in your HTML.
Keyboard Exit
I think using either hitting the ESC key twice should trigger it, or holding one of the big keys should (like space or enter). Either way, you should let the user know about this, and possibly, let them train themselves by trying. Trying panic exits will both help them in anticipating behaviour on panic to make a good reasoning (Having the behaviour expected could be relieving), and they will be trained to do so, such that they will be more likely to do it properly in the panic time.
Mouse Exit
This is going to be pretty straightforward, have a big, different colored button that will trigger the panic.
Where to Exit?
That depends on the case, by design it might be sensible to make a redirect to a commonly used, similarly designed site by default. It might also be sensible to allow the user to choose the exit site by themselves (after making a sane default).
Notas
- If the user is using private browsing and panics, the browser will still be on private browsing state, which might arouse suspicion. There is no easy way around it. You can try to instruct user to clear the history afterwards, but they might not have enough time for it.
- Most of the answer focuses on desktop browsers, the experience on a mobile device will be different, but not very much.
Hay algunos grandes problemas con el botón de pánico:
- es difícil hacer clic en él (debe ser preciso)
- toma tiempo seleccionarlo (y una gran cantidad de tiempo si está en la computadora portátil sin un mouse)
- te salva en la historia
- es accesible a través del botón de retroceso / retroceso.
¿Y qué hay de los movimientos aleatorios de una mujer que está intentando hacer clic rápidamente en ese botón, cuando estaba leyendo esto? ¿Qué pasa si ella extrañará el botón desde el primer intento?
Entonces, si realmente hay vidas humanas que podrían salvarse, esta es una mala idea.
La mejor manera es mostrarles la forma normal de hacerlo (mediante algún tipo de ayuda antes de poder ingresar a este sitio). Puede ser algo como esto:
Dependiendo del navegador de un usuario, usted les da una lista de los pasos a seguir que usan solo el teclado (sin ningún mouse). Por ejemplo, si ella está en cromo.
- abra un sitio web que le guste (FB, twitter, funny bunnies y pretenda que está haciendo algo).
- Presione CRTL + MAYÚS + N (abre la ventana de incógnito) que no permitirá los trucos de retroceso / historia
- ingrese a nuestro sitio allí (no copie para evitar el control de lo que está dentro de su buffer)
- Lea las cosas y siempre mantenga sus manos sobre el teclado cerca de CRTL y W
- En caso de emergencia, presione CRTL + W
- Continúa protagonizando tu FB, twitter, funny bunny
Seguramente tienes que modificar tu explicación en el lenguaje apropiado. Pero de esta manera es muy difícil quedar atrapado. También comente acerca de sentarse junto a los espejos y otras superficies de reflejo como ventanas, vidrios y otras cosas. Pídales que intenten usar estas combinaciones por un tiempo para estar familiarizados.
Si se trata de vidas humanas, debes ser profesional y no utilizar estos botones de pánico. Especialmente si es tan fácil enseñarle a la gente cómo hacerlo más rápido y más seguro.
Respuesta a Nobius
Te entendí, gracias. Pero no estoy de acuerdo con tu punto. Después de una gran campaña para ponerlo en FB, ¿lo has visto realmente en FB? No tengo. Las personas no técnicas son famosas por tener ideas ridículamente malas, algunas de las cuales podría haber experimentado (evitando hacer clic derecho en las páginas de los bancos para mejorar la seguridad, las contraseñas de 4 dígitos son más fáciles de escribir desde teléfonos móviles). Presionar un botón suena más fácil, pero mira mi lista de pasos: lo único que tienes que hacer en una situación estresante es presionar CTRL + W. No necesita pensar en términos de pestañas, modos y otras cosas. Esto viene al patrón básico: ver a alguien, presionar CTRL + W. En mi opinión, esto no es difícil en absoluto y fácil de recordar. No es mucho más difícil que recordar hacer clic en el botón. Todo lo demás debes leer en un ambiente normal.
Presionar 2 botones es MUCHO más rápido que mover el mouse, y es realmente difícil no verlos cuando los tocas con los dedos (haz un experimento y ponte en una situación de estrés e intenta hacer clic rápidamente en ese botón). Además, como mencioné, veo al menos cuatro razones de que algo puede salir mal en una situación de panic button
, mientras que veo mucho menos en CRTL + W. Si las vidas de los humanos involucran, debes ser profesional.
Responde a NicolasMoise . ¿Por qué la gente sigue diciendo que necesitas ser un conocedor de la tecnología para presionar CTRL + W? No estoy tratando de mostrar a la gente cómo usar TOR, VPN, configurar el canal de encriptación. Esto es solo CTRL + W. La gente aprendió cómo jugar pájaros enojados a la cintura (lo que es mucho más difícil que recordar 2 botones), por lo que las personas pueden aprender CRTL + W para salvar sus vidas. El tutorial puede mostrarse de tal manera que el observador no pueda entender por qué está leyendo esto (cuando vea mi lista de pasos, no creo que sea la primera suposición - ah esto es para el sitio de abuso de mujeres).
Pero lo más probable es que le dé a la gente la percepción de falsa seguridad. La respuesta no está fuera de tema. La persona pregunta cómo implementar el botón de pánico, y estoy explicando por qué el camino actual tiene fallas y qué puede hacer para hacerlo mejor. Está en el mismo nivel que "Quiero hacer que la comunicación sea segura y estoy usando el cifrado de sustitución", sí, puede mejorar la velocidad de su cifrado y pretender que todo está bien, o puede mostrar de otra manera.
Un último intento de explicar mi punto adicional : debe explicar adecuadamente a las personas los riesgos detrás de su enfoque. Un buen ejemplo de cuando la gente sufría por no haber explicado los problemas correctamente era el problema con los bloggers bielorrusos, que pensaban que publicar anónimamente en Internet los haría imposibles de rastrear de las represiones gubernamentales. El recurso les dio la falsa creencia de que están a salvo si no proporcionan su verdadera identidad. Aprendieron que esto no es cierto de la manera difícil (cuando estuvieron encarcelados durante algunos años).
Si alguien les explicara el riesgo, creo que algunos de ellos estarían felices de aprender cómo usar cualquier herramienta para salvar sus próximos cinco años.
Entonces, ¿por qué no darles a las mujeres pocas opciones?
- puede usar el enfoque A de inmediato, y aquí está la lista de problemas que puede encontrar.
- puede usar el enfoque B, que requiere X minutos durante la primera vez para leer y comprender algo. Y luego su lista de posibles problemas disminuye a una lista más pequeña.
Y que decidan lo que quieren hacer. De esta manera ellos conocen los riesgos.
Esta respuesta asume que el Historial y la Barra de direcciones no son un problema. Al menos, no de inmediato.
Guión
Julie es una victima de abuso conyugal. Ella está en Internet buscando ayuda, y llega a su sitio web: http://www.crisisprevention.com (ficticio para esta respuesta)
Mientras examina su sitio, oye a su esposa acercándose rápidamente a la sala. Ella entra en pánico. Afortunadamente, tienes un botón grande y bonito, fijo en la página mientras se desplaza.
Ella hace clic en este botón y ...
La lleva a Google.com
No me gusta este enfoque por la siguiente razón: nadie va a creer que está simplemente sentado frente a su computadora mirando el indicador de búsqueda de Google. Créame. Lo intenté antes.
Solía mantener una pestaña abierta con el indicador de Google, y si estaba navegando fuera del tema en el trabajo, cambiaba a la pestaña de Google para que nadie fuera más inteligente. Funcionó ... más o menos. Hasta que la gente comenzó a preguntarse por qué estaba mirando la pantalla de búsqueda de Google todo el día.
Desde entonces, comencé a abrir una pestaña con varios proyectos de trabajo en diferentes estados. Por lo general, cosas en las que estoy trabajando de todos modos entre la navegación. Entonces, ¡ahora estoy trabajando! No hace falta ser un genio de la tecnología para descubrir este enfoque, por lo que la respuesta de @LeeGary puede ser la mejor.
Se necesita ... todavía la está llevando ... oh problemas de conexión a Internet
Aquí hay una realidad para la que debes estar preparado. Quizás la conexión a Internet se interrumpe en el momento en que entra en pánico. El contenido actual permanece en la página mientras espera que la solicitud HTTP GET obtenga contenido, puede comenzar a procesar ... solo, no se está recuperando contenido. La conexión a Internet está desconectada. Esto podría suceder por varias razones:
- El cónyuge lo desconectó.
- Ser contactado es bajo una carga extrema.
- El navegador se está volviendo tímido en la memoria.
- ISP está teniendo problemas.
- Conexión / desconexión de acceso telefónico (sí, estos todavía existen).
- La computadora es solo lenta.
- El servidor DNS está caído.
Las razones siguen y siguen por las cuales el navegador podría ahogarse cuando acciona el botón de pánico e intenta moverla a un nuevo sitio.
Sirve un sitio web alternativo al instante
Mi solución sugiere que precargue un sitio web en el fondo de su sitio. Colóquelo en un <div>
y escóndalo detrás de su sitio normal. Si se trata de una gran cantidad de contenido, entonces podría considerar ocultarlo con z-index
lugar de display: none
. De esta manera será pretraducido ( creo que podría estar mal aquí ).
Ahora, no importa si su conexión a Internet no funciona. Ella ya tiene el contenido. No hay latencia involucrada con una solicitud HTTP GET. Simplemente se muestra de inmediato.
Si la barra de direcciones es una preocupación, es posible que aún pueda mitigar eso al servir un sitio web alternativo que se relaciona con su dominio.
Por ejemplo, tome el dominio ficticio (para esta respuesta): http://www.crisisprevention.com
Podría presentar un artículo alternativo que se refiera, por ejemplo, a la solución de la crisis mundial del hambre.
La idea aquí es que es la primera mirada inicial que es la más condenatoria. Cuando el cónyuge entra y la ve navegando hacia Google.com, con esa mirada de pánico que la rodea, sospechará que algo está pasando y estará más inclinado a investigar. Del mismo modo, podría ser aún peor si se ve atrapada en el acto de tratar de ocultar sus acciones porque la solicitud HTTP GET fue lenta o no.
(CASI) EDICION FINAL
De acuerdo, leí todos los comentarios y creo que es la mejor solución, pero también he pensado en una ALTERNATIVA TOTALMENTE LOCAL. Estoy abierto a más mejoras / discusión
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.
}
Pongo un ejemplo en mi instancia de AWS en 54.186.79.95 Vaya a esa página, haga clic en el botón, visite otra página, luego vuelva a contestar, ahora está en 54.186.79.95/decoywebsite y no hay registro de que esté en 54.186.79.95 /, si la memoria caché está deshabilitada, su servidor verá la solicitud "../decoywebsite" y enviará una página señuelo. Desafortunadamente, no puedes modificar todo el dominio, por lo que necesitarías que el dominio no sea sospechoso.
Si desea deshacerse del contenido de la página, creo que la mejor manera es usar document.body.innerHTML='''';
. Todavía estás técnicamente en la página pero todo el contenido se ha ido.
El siguiente paso es modificar el historial de tu navegador. window.history.replaceState
( link to docs ) es una función HTML5 que puede modificar su historial sin tener que realizar una recarga de página o una solicitud a su servidor. Es bastante rápido, pero solo funciona en navegadores modernos. Cuando el usuario hace clic en el botón de pánico, reemplazaremos la página actual de su historial con una URL falsa.
Si el usuario abusivo hace clic atrás, su servidor (Php, python, lo que sea) recibirá una solicitud con su URL falsa. Por lo tanto, necesita tener otro punto final en su servidor (Avíseme si no comprende los puntos finales). Haga un artículo, receta o informe meteorológico benigno con un aspecto similar a su sitio web original para evitar sospechas si el abusador echó un vistazo rápido al sitio web. También asegúrese de que el navegador no cache usando la <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
.
Observaciones adicionales
- Idealmente, todo su sitio web (excepto su artículo de señuelo, por supuesto) debe ser un SPA (aplicación de una sola página) para que solo produzca un registro del historial del navegador y solo debe modificarlo.
- Al final del día, no creo que puedas hacer un botón de pánico que sea 100% infalible, habrá formas de evitarlo. Solo tiene que encontrar uno con un nivel aceptable de seguridad y conveniencia.
OTRA ALTERNATIVA: CAMBIAR LOCALMENTE LA INFORMACIÓN INCRIMINANTE Y MODIFICAR LA HISTORIA DEL NAVEGADOR
También estaba pensando si en lugar de cargar google , si no es mejor transformar tu sitio localmente con información inocente . Esto parece menos sospechoso que cargar Google (todos lo hacen) y puedes hacerlo todo localmente sin tener que volver a cargar la página.
Cuando hacen clic en el botón de pánico, realiza una manipulación DOM (y compatible con varios navegadores) para cambiar la información incriminatoria en su sitio web y hacer que parezca inocente (tal vez simplemente cambie el texto, tiene que ser rápido). De esta manera, todo se hace localmente, lo que en la gran mayoría de los navegadores de hoy es casi instantáneo. No tiene que preocuparse por recargar / servidores porque los scripts ya deberían estar cargados y listos para funcionar. Si mantiene el mismo aspecto y sensación, parece que el usuario solo estaba navegando a una página diferente del sitio web. No deje muy claro, por el aspecto de su sitio web, que se trata de un sitio web de crisis. Por supuesto, hace que sea imposible volver al contenido original. También dejaría en claro en el botón de pánico cuál es la estrategia para que el usuario no se asuste.
Todavía intentaría cambiar el historial del navegador y comprar otro dominio que aloje una copia de la página señuelo, como en el ejemplo anterior. No solo si el nombre de dominio es sospechoso, sino en caso de que el usuario abusivo acceda a actualizar o retroceda en su historial. Debe hacer que su sitio web completo sea un SPA porque solo puede modificar su entrada actual, no su historial anterior. Por supuesto, esto solo funcionaría en navegadores HTML5, solo asegúrate de que no se genere ningún error y que la otra parte de los scripts aún se ejecute en navegadores antiguos.
¿Qué piensa la gente? cualquier debilidad a esto? ¿Cuál sería un buen contenido para reemplazar?
I think we can do this differently. My Idea is as follow:
- Show the website with only fake content (similar style and layout with the real one).
- User needs to do certain interaction with the content to trigger step3(eg put XYZ in a textbox or have clicked a combination of Checkbox or RadioButton, etc.).
- Con el paso 2 satisfecho, cuando el usuario resiste cierto punto pequeño en la página (lado derecho), la página mostrará su contenido real. Y el contenido permanecerá si el mouse está sobre él.
- En una emergencia / pánico, el usuario puede alejar el mouse del contenido real y el contenido volverá a ser falso.
You could show an error page instead of an actual site, which is already loaded in the background. Maybe a fake youtube or google 404 page? I think this would keep the size of the extra content to a minimum.
As others have suggested, I would also use the escape key. Reduces the change of missing it, would be a lot easier for someone with a mousepad and the user can keep his/her finger on it when he/she is just browsing through the site.
You can also use other options; a button on the page itself or let them know about other methods of escape (ctrl + w, as mentioned before). Maybe also a gesture for the tablet users? There are probably some libraries for that.
And of course, you could change the url in the taskbar. (See other posts for code on how to do that).
Encourage them to try the escape options out. So they know what they do and how they can react to it.
You might take a look at the "Boss" panic buttons on some old games and sites. The idea is that you could switch quickly to something innocent looking if your boss came by (of course, you have to see them approaching first!).
Almost any hurried/frenzied action when the abuser comes in is going to arouse their suspicion. Consider designing the screens so that they look like general news or the like (from a distance), with no large titles or pictures giving away their purpose. This could often allow time for a "leisurely" exit from the site, without panic. If the panic button link takes the user to, say, a bona fide news site, so much the better (if it comes up fast enough).
As others have mentioned, if the abuser becomes suspicious (and many control freaks are), there''s still a history trail on the browser that they can quickly find out where the user has been. Frankly, there''s not much you can do, especially if the user goes into a frenzied panic mode trying to cover their tracks, and the abuser sees this. Even if the screen itself can be refreshed to something innocent after some timeout, the browser history will have the URL.
Consider advising users to position the computer so the abuser can''t sneak up on them from behind, or to go to a library or other non-private place to use this site. If the screen content is dull looking from a distance (see above), it shouldn''t attract interest from others.
Good luck with this!