¿Cómo puedo forzar ...?

English Version: https://webtips.dan.info/force.html
CONSEJO: entienda que el HTML no puede "forzar" ningún tipo de acción, y no intente evitar esta limitación; simplemente molestará a sus usuarios y hará que su sitio sea menos accesible.
Las preguntas comunes de "novato" en los grupos de noticias dedicados a la creación web son aquellas que comienzan con "Cómo forzar al navegador del usuario a ..."
  • ¿No tienes un botón "Atrás"?
  • ¿Uno de los enlaces en la página funciona como un botón "Atrás"?
  • ¿Eliminar el historial pasado de la navegación del usuario para que no pueda volver a salir de mi sitio?
  • ¿Guardar el historial de navegación del usuario y enviarlo a mi sitio para que pueda analizarlo en una investigación de mercado?
  • ¿Revertir todos los enlaces visitados al color del enlace no visitado?
  • ¿Suprimir el puntero del mouse de "mano" cuando el usuario mueve el mouse sobre un enlace, para que pueda ser un enlace oculto?
  • ¿el tamaño debe ser de 640 x 480 sin importar el tamaño del monitor del usuario?
  • ¿No tiene barras de desplazamiento sin importar el tamaño del monitor del usuario?
  • ¿Instalar mis fuentes personalizadas en el sistema del usuario para que mi página muestre la forma en que lo deseo, incluso si el usuario aún no tiene esas fuentes?
  • ¿Ignora las configuraciones y los controles de cambio de tamaño de fuente del usuario y mantiene las fuentes del mismo tamaño sin importar cómo estén configuradas?
  • ¿Le pide al usuario que guarde un archivo en el disco cuando el usuario hace clic en él, en lugar de mostrarlo dentro del navegador?
  • ¿Ejecutar inmediatamente un archivo EXE desde mi sitio cuando el usuario hace clic en él, en lugar de pedirle al usuario que guarde el archivo?
  • ¿imprimo mi formulario de pedido en la impresora del usuario inmediatamente cuando ingresa a mi sitio?
  • ¿Ver mis páginas web solo como parte de un conjunto de marcos, y no individualmente?
  • ¿Ver mis páginas web solo de forma individual, no como parte de un conjunto de marcos?
  • ¿Suprimir la función "Ver código fuente" para que nadie pueda robar mi código HTML?
  • ¿Deshabilita la función "Guardar como" para que nadie pueda robar mis páginas, gráficos y otros elementos?
  • ¿Suprimir el botón "Imprimir" para que nadie pueda robar mis páginas en forma impresa?
  • ¿Suprimir todas las funciones de hacer clic derecho y copiar y pegar en mi sitio?
  • ¿aparece un cuadro de advertencia cada vez que un usuario intenta abandonar mi sitio para animarlo a quedarse?
  • ¿Guardar archivos que el usuario descarga en el directorio que elijo, en lugar de un directorio que el usuario elige?
  • ¿Suprimir el cuadro de diálogo de advertencia que aparece (en algunas versiones y configuraciones del navegador) cuando mi sitio intenta ejecutar un control ActiveX, establecer una cookie, pasar entre páginas seguras e inseguras, etc.?
  • ¿Desactivar JavaScript en el navegador del usuario (para suprimir las ventanas emergentes que agregan algunos servicios de alojamiento web gratuitos)?
  • active JavaScript en el navegador del usuario (para asegurarse de que se muestren todos mis efectos especiales)
  • ¿Suprimir la visualización e impresión de la URL de los documentos, de modo que pueda ocultar al usuario cómo recuperar un documento específico directamente y obligarlo a revisar mi estructura de menú?
  • ¿Deshabilita la función "Marcador" (o "Favoritos") para que el usuario no pueda marcar mi página?
  • ¿Marcar automáticamente mi página cuando el usuario la visita por primera vez?
  • ¿Mi formulario se envía automáticamente cuando el usuario presiona ENTRAR?
  • ¿Mi formulario no se envía automáticamente cuando el usuario presiona ENTRAR?
  • ¿Suprimir el cuadro de puntos que aparece alrededor de las imágenes en las que se puede hacer clic cuando se seleccionan (en algunas versiones de MSIE)?
...Y la lista continúa. Todos ellos muestran una falta de comprensión de cómo funciona la Web. No hay forma de que un autor pueda forzar nada en el usuario. Varias construcciones de HTML pueden sugerir ciertas acciones en la parte del navegador, pero no pueden forzarlas .
Es cierto que algunas construcciones y complementos más nuevos (a veces no estándar), especialmente los lenguajes de scripting como JavaScript, pueden "forzar" el comportamiento de varios navegadores, al menos por parte de un navegador que admite dicha actividad. Pero en un navegador que no lo hace, y uno en el que dichos complementos están deshabilitados por las preferencias del usuario, no pueden forzar nada. (Algunos navegadores, como Mozilla y Opera , se están volviendo muy buenos para desarrollar configuraciones sofisticadas de preferencias para permitir a los usuarios desactivar algunas de las cosas más molestas que un sitio puede intentar hacer, como los anuncios pop-under, al mismo tiempo que habilitan la mayoría de las mejoras multimedia que realmente pueden mejorar la calidad de un sitio.)
Incluso si fuera posible forzar tales cosas en el usuario, la pregunta es "¿Por qué quieres hacer eso?" Una gran parte de la comunidad de usuarios está dispuesta a molestarse con tales intentos de manipular su experiencia de navegación, y es probable que un usuario molesto no vuelva a su sitio web. Los usuarios están acostumbrados a usar herramientas de navegación estándar, como el botón Atrás del navegador, y no les gustará si de alguna manera logran desactivarlas. Es posible que los usuarios utilicen cualquier número de plataformas de máquinas y resoluciones de pantalla diferentes, y no puedan o no quieran forzar un ancho de píxel en particular para adaptarse a sus diseños mal diseñados que no pueden cambiar el tamaño a la configuración del usuario. Los usuarios pueden ver un riesgo de seguridad al ejecutar applets y scripts incrustados y se negarán a habilitar esta configuración.
La falta de capacidad para forzar el comportamiento del navegador es ciertamente frustrante para los desarrolladores que están acostumbrados a crear productos de software independientes diseñados para una plataforma en particular y que se ejecutan completamente de principio a fin bajo el control del desarrollador, pero si está desarrollando para la Web, Tendremos que perder esa mentalidad y aprender a aceptar el mayor control que el usuario web tiene sobre la experiencia de navegación.

Algunas notas sobre intentos de 'fuerza' específicos

Aquí hay algunos comentarios más específicos sobre algunas de las cosas particulares que las personas a menudo desean "forzar":

Obligando a las nuevas ventanas del navegador a abrirse, cerrarse, ajustarse a dimensiones específicas y carecer de controles normales como el botón Atrás

Si JavaScript está habilitado, puedes usarlo para hacer tales cosas. Pero estos son el tipo de cosas que pueden molestar a muchos usuarios, ya que cambian la interfaz de usuario normal del navegador y, si el usuario tiene poca memoria, puede incluso bloquear el sistema. También pueden poner al usuario en "bucles" donde la misma ventana emergente no deseada se abre nuevamente cada vez que el usuario la cierra, lo que aumenta el nivel de molestia.

Eliminando sitios del historial de "Back-Button"

Una solicitud muy común es hacer imposible que el usuario regrese a una página a través del botón Atrás. A veces, incluso hay una razón legítima para esto, como evitar que los elementos del formulario se envíen dos veces o estén desordenados, o para proteger la seguridad de la información personal ingresada en la página. Otras veces es solo un deseo irrazonable por parte de un cliente que no controla los controles y que no puede soportar que los usuarios elijan su propia secuencia de visualización de su sitio, o incluso que naveguen por los sitios de otras personas y vuelvan al sitio original más tarde. De cualquier manera, no es posible. Incluso con lenguajes de scripting, no conozco ninguna forma de eliminar sitios del historial del usuario. Si lo necesita para una intranet o kiosco donde controle el navegador, puede buscar un navegador personalizado que tenga tales funciones integradas.

Forzar la configuración de fuente, tamaño y color de la fuente, independientemente de la configuración del navegador

Puede sugerir la configuración de fuentes de varias maneras, incluidas hojas de estilo y etiquetas y atributos de presentación diversos (en desuso en HTML 4.0). En algunos navegadores, algunas de estas configuraciones "forzan" las configuraciones deseadas independientemente de la configuración del usuario. Esta es una mala idea, ya que puede resultar en páginas que son ilegibles para usuarios con necesidades especiales. Por ejemplo, los que tienen una vista deficiente pueden querer fuentes más grandes, y los que tienen ceguera al color pueden necesitar establecer combinaciones de colores que sean legibles para ellos, incluso si parecen extraños para otros. Cuanto más haga el autor del sitio para tratar de vencer esas cosas, y cuanto más coopere el navegador, menos legible será para dichos usuarios.

Obligando a los archivos a descargar, ejecutar, lanzar aplicaciones específicas, etc.

No puedes hacer eso. Los protocolos web fueron diseñados para identificar, mediante encabezados de tipo de contenido MIME, qué tipo de contenido tiene un flujo de datos, pero no especificar exactamente qué hacer con él. Esto se hizo por una buena razón; el autor del sitio no tiene forma de saber exactamente qué tipo de sistema tiene el usuario final, o las preferencias de ese usuario en cuanto a cómo tratar con diferentes tipos de datos. Y algunas formas de tratar los datos, como ejecutar automáticamente un archivo .exe, presentan riesgos de seguridad como virus y "caballos de Troya". Y si el usuario tiene una Macintosh o un sistema Unix, ejecutar DOS o Windows .EXEs es inviable, de todos modos; pero si deja que el usuario descargue el archivo, podría ponerlo en un disco y ejecutarlo en una PC en el pasillo.
En general, es posible que los usuarios deseen tomar sus propias decisiones sobre cómo tratar con varios tipos de archivos, mostrándolos en su navegador, mostrándolos a través de una aplicación de ayuda externa, o guardándolos en su disco duro, en lugar de dejar que su sitio haga fuerza. un comportamiento particular que puede que ni siquiera funcione en el sistema de este usuario en particular. Por lo tanto, debe asegurarse de que su servidor envíe un encabezado de tipo de contenido honesto y preciso para cada elemento que envíe.
Si está enviando archivos de datos de algún tipo que el usuario debería guardar en lugar de ver en su navegador, el mejor tipo de MIME que puede usar es application/octet-streamesto generalmente hará que aparezca un cuadro de diálogo "guardar". No es "forzado" (un usuario puede configurar el navegador para hacer otra cosa con este tipo de datos), pero es la acción habitual, y esto es lo más cerca que puede acercarse a "forzar al navegador a guardar el archivo". Pero no puede forzar el directorio o el nombre de archivo en el que está guardado, aunque los navegadores generalmente obtendrán el nombre de la última parte de la URL (aunque pueden variar de maneras enloquecedoras, a veces terminan con nombres de archivo extraños, a diferencia del que usted quería) .
Siempre puede alentar al usuario a utilizar las funciones del navegador para guardar un archivo en el disco, como hacer clic con el botón derecho en Netscape o MSIE, que funcionan sin importar qué tipo de MIME se use o cómo esté configurado el navegador para manejar ese tipo.

Suprimiendo los cuadros de diálogo de advertencia

Es posible que no le guste que algunos navegadores muestren "Advertencias de riesgo de seguridad" cuando su sitio intente configurar una cookie, iniciar un applet o un control ActiveX, pasar de páginas seguras (encriptadas) a no seguras y viceversa, u otra actividad que algunos navegadores, bajo algunos ajustes de configuración, advertir sobre. A algunos autores les disgusta esto tanto que preguntan si hay alguna forma de forzar la desactivación de tales advertencias. Bueno, si el autor de la Web pudiera hacer eso, ¿no anularía eso el propósito de estas advertencias de posibles riesgos de seguridad? ¡Ser realistas!

'Ocultar' el código fuente de tu página

Esta es probablemente la solicitud más común de "Cómo forzar ..." en los grupos de noticias en estos días. Las personas tienen una impresión exagerada del valor de su código HTML y quieren protegerlo de ser "robado". Pero no hay manera de ocultar el código fuente HTML del usuario. El navegador del usuario necesita recibir todo el código fuente HTML para mostrar la página, por lo que no importa qué técnicas maliciosas utilice el autor para ocultar el código, aún tiene que ser analizado por el navegador y, por lo tanto, no es demasiado difícil para nadie. Usuario medio inteligente para convertir en algo legible.
Una de las grandes cosas de la Web es que los "novatos" pueden aprender mucho sobre la creación de la Web al consultar el código fuente de las páginas. Esa es una de las formas en que aprendí en primer lugar. Al hacer esto, verá muchos ejemplos (tanto buenos como malos) de técnicas de creación web, que pueden ayudarlo a producir páginas tan agradables como las de los profesionales. Las brechas de aficionados / profesionales y principiantes / expertos son mucho más pequeñas en la Web que en otros medios, y tal vez debido a un deseo de ampliar esta brecha, algunos de los "profesionales" quieren encontrar una manera de ocultar su código fuente. Pero todavía no se puede hacer.
Del mismo modo, no hay forma de evitar que alguien imprima, marque o se vincule a su página. Cuando pones algo en la Web, es un juego justo para todo esto. Aún tiene derechos de autor legales sobre todo lo que pone en la Web (según la ley actual, tiene derechos de autor de todo lo que cree, incluso si no tiene un aviso de derechos de autor), y puede demandar a alguien que distribuya copias de él sin su permiso, pero no puede detener el uso normal de la Web de sus documentos cuando están en la Web, y eso incluye otros sitios que hacen enlaces a su página. Si quiere hacer que las personas sean más difíciles, supongo que puede seguir moviendo sus páginas para que cualquiera que se vincule a uno comience con un error 404 No encontrado al día siguiente, pero eso molestaría a sus usuarios legítimos al menos tanto como Cualquiera que creas que te está "estafando".
Algunas de las personas que preguntan cómo suprimir la función "Ver código fuente" no están haciendo esto para evitar el robo de su código, sino porque desean mantener la seguridad de algo en su código, como una contraseña incrustada u otra cosa similar que pueda Ser abusados ​​por "hackers" si lo supieran. Si este es el caso, debe volver a pensar completamente el plan de seguridad de su sitio. Nada de lo que está presente en el código enviado al navegador está protegido contra la intrusión por parte de los usuarios que intentan "piratear" su sitio, ni siquiera las cosas que se compilan en un applet (que puede ser descompilado por varias utilidades). Debe mover cualquier aspecto de su sitio que requiera seguridad al lado del servidor, no al lado del cliente. El servidor debe estar donde se comparan las contraseñas, se mantiene el estado del usuario y la información del historial, etc.

Suprimir clics con el botón derecho y copiar y pegar

Esto está estrechamente relacionado con el último; muchas personas ignorantes piensan que pueden evitar que las personas "roben" el contenido de su sitio si colocan scripts molestos que suprimen los clics con el botón derecho y la copia de texto. No, esto no funciona; es trivial deshabilitar JavaScript, y luego los scripts no hacen nada en absoluto. Todo lo que hacen es molestar a los usuarios normales, que tienen muchas cosas perfectamente razonables que podrían querer hacer al hacer clic con el botón derecho y copiar texto, como abrir enlaces en nuevas pestañas o copiar extractos breves para usar (bajo la disposición de copyright de uso justo) ) en comentarios del sitio y comentarios.

Enviar o no enviar un formulario con ENTER

Esto está completamente bajo el control del navegador, no del autor del sitio. La mayoría de los navegadores enviarán en ENTER si hay exactamente un campo de entrada de texto, y no si hay más de uno. No hay manera de anular esto. (La presencia de casillas de verificación y botones de radio no parece afectar el comportamiento del navegador en esta área).

Ese MSIE "caja de puntos"

A common question these days is "How do I disable the dotted box that appears around a clickable image in Microsoft Internet Explorer when it's selected?" Well, there's a "kludgy" way of disabling this, by putting in a JavaScript "onFocus" event that calls the "blur()" function to remove focus from the current object; but there are a lot of users who will be annoyed if you do this. The dotted box is an accessibility feature added by Microsoft to permit the browser to be used entirely from a keyboard without using the mouse. Some users prefer to surf this way, or have handicaps that make mouse-based navigation difficult or impossible. If you use JavaScript to defeat this feature, the users who want or need to navigate by keyboard will be compelled to disable JavaScript to use your site.

Sala de la vergüenza

Haga que su sitio sea mejor mirando otros sitios que muestran, por ejemplo, ¡ qué no hacer !
NOTA: La inclusión de un sitio en mis enlaces del "Salón de la vergüenza" no debe interpretarse como un tipo de ataque personal contra el creador del sitio, que puede ser una gran persona, o incluso un ataque al sitio web vinculado en su conjunto. , que puede ser una fuente de gran información y / o entretenimiento. Más bien, es simplemente resaltar las características específicas (intencionales o accidentales) de los sitios vinculados que causan problemas que podrían haberse evitado mediante un mejor diseño. Si encuentra que uno de sus sitios está vinculado aquí, no se ofenda; ¡Mejora tu sitio para que tenga que quitar el enlace!

No comments:

Post a Comment

The Rise and Fall of Android Tablets

One of the most exciting stories in the modern tech industry is that of tablets. Back in 2010, when the touchscreen smartphone revolution ...