¿Cómo puedo desactivar selectivamente los bloqueadores de pegar?

37

A medida que más y más sitios web agregan código de bloqueo de pegado de un tipo u otro a los campos de correo electrónico y contraseña y más personas usan administradores de contraseñas, los dos entran cada vez más en conflicto.

Si bien existen extensiones como no se anda con pasta para Chrome o manipulaciones del portapapeles Desactivar y la dom.event.clipboardevents.enabledpreferencia para FireFox, todos ellos sufren el problema de que no hay razones legítimas por las páginas web podrían querer enganchar en onpaste(como Google docs texto enriquecido soporte o el manejo de enlaces de Facebook), así que no quiero que esa funcionalidad esté completamente deshabilitada.

† Ve about:configy busca y dom.event.clipboardevents.enabledluego haz doble clic para alternar.

Otra opción es hackear cada página que encuentre con el código ofensivo manualmente, pero eso es una molestia y no funciona en todos los casos (como en esta página ). Puede encontrar una sugerencia de cómo hacer esto en Pegar contraseñas de Martin Brinkmann en campos de formulario bloqueados en la página de Internet .

Idealmente, solo quiero poder decir "Volver a habilitar pegar en todos los campos de esta página" como un botón o una opción de menú contextual para la página, entonces, ¿hay alguna forma de hacerlo?

Lo más parecido que he encontrado es la Rehabilitación de pegado de contraseña de Derek Prior en formularios web molestos, pero utiliza el mismo método que el método manual, por lo que no funciona con la página específica con la que estaba teniendo problemas, y no tengo idea de cuántos Otros métodos pueden estar disponibles.

Mark Booth
fuente
¿Estos sitios también bloquean el guardado de contraseña incorporado del navegador (por ejemplo, Firefox)? ¿Quizás hacer lo que sea que haga?
Xen2050
1
Don't fuck with pastete permite elegir sitios web particulares para los que deshabilitar las manipulaciones
Ruslan
Gracias @Ruslan, he verificado que esta extensión ahora resuelve mi problema y agregué una respuesta para reflejar eso.
Mark Booth

Respuestas:

11

Los formularios web que tienen esta característica de bloqueador de pegado pueden implementarla declarativamente usando el atributo onpaste para un cuadro de texto o vinculando un evento a través de JavaScript o jQuery .

Al contrario de lo que usted dijo, pude hacer que el bookmarklet de Derek Prior funcionara en Chrome (ver 39 en Windows) con páginas que tenían los atributos (type = "password" onPaste = "return false") en el cuadro de texto de la contraseña

También puede probar el bookmarklet de Chris Bailey que rompe los bloqueadores de pasta implementados a través de JavaScript.

Esto es un poco complicado, pero otra alternativa es deshabilitar JavaScript temporalmente para esa página, lo que a su vez desactivará el bloqueador de pegado de JavaScript. Para Chrome, el método abreviado de teclado para abrir Dev Tools es F12, para llegar al panel de Configuración es F1 y aquí encontrará la casilla de verificación para Desactivar JavaScript en la sección General.

ingrese la descripción de la imagen aquí

mvark
fuente
Gracias mvmark . Investigando más, parece que la página específica con la que estaba teniendo problemas usa algún otro método. He actualizado mi pregunta y creo que podría ser necesaria una pregunta de desbordamiento de pila para obtener una lista definitiva de posibles métodos, por lo que se puede escribir un bookmarklet que los cubra a todos.
Mark Booth
@MarkBooth En Chrome, puede deshabilitar JavaScript temporalmente para esa página, lo que a su vez desactivará el bloqueador de pegado de JavaScript con el acceso directo F12 - F1. Por favor vea mi respuesta actualizada arriba.
mvark
1
Gracias mvark , esa es una gran solución para Chrome. Para Firefox, instalé Deshabilitar manipulaciones del portapapeles y fijé el Administrador de complementos para que sea fácil de habilitar o deshabilitar.
Mark Booth
1
@annan actualizó el enlace muerto con el enlace del artículo archivado web.archive.org/web/20170908125754/http://prioritized.net/blog/…
mvark
7

Para páginas que usan jquery (básicamente todas las páginas web). Puede pegar la siguiente URL de JavaScript en la barra de direcciones

javascript:void($('input').attr('onpaste', ''));
Att Righ
fuente
2

1 .--- Esto puede hacer que el problema desaparezca al menos en algunos sitios: QUEJARSE, y avisar a estos sitios web que están DESTRUYENDO, no mejorando la seguridad de sus usuarios. Tal vez simplemente no lo han pensado ...

Aquí está el texto que acabo de copiar del blog de Chris Bailey que tiene su marcador. (Sugerencia: mantenga esto en sus marcadores) .
-> Te sugiero que envíes PARTE de lo siguiente a cualquier sitio que necesite ser reeducado:

Volver a habilitar el pegado de contraseñas en formularios web molestos (v2)

La seguridad no debe tomarse a la ligera, por lo que en los últimos días me he sentido cada vez más frustrado por la insistencia de algunas empresas para desactivar la posibilidad de pegar contraseñas en los formularios de inicio de sesión. En lugar de aumentar la seguridad, esto paraliza a aquellos de nosotros que usamos administradores de contraseñas como KeePass, [LastPass] o 1Password, ya que las buenas contraseñas largas generadas al azar no pueden simplemente pegarse en el campo de contraseña. En cambio, los usuarios se ven obligados a escribir contraseñas manualmente, lo que promoverá el uso de contraseñas más cortas (y, por lo tanto, debilitará la seguridad).

He encontrado que esto ocurre en compañías como Apple, Vodafone y Nestlé.

Afortunadamente, he encontrado una solución en forma de marcador. La idea original surgió de la publicación en el blog Re-enable Password Pasting on Annoying Web Forms por Derek Prior. Desafortunadamente, su método simplemente elimina el atributo onpaste directamente, pero esto no funciona si el sitio web está utilizando un marco de manejo de eventos como jQuery. Tomé el código original de Derek y lo modifiqué para que funcione mejor con estos marcos.

2 .--> Pruebe el bookmarklet de Chris disponible aquí , pero solo en Chrome, Opera o Vivaldi cuando la página NO está utilizando JQuery:

3 .--> Pídale a alguien que escriba un complemento completo para todos los navegadores. Para comenzar, aquí están sus comentarios y la fuente de referencia de la página de Chris:

Para usar el marcador, arrastre el siguiente enlace a la barra de marcadores de su navegador.

Nota de compatibilidad: el bookmarklet solo funciona en Chrome y Safari debido a la dificultad de leer los datos del portapapeles en Firefox. Podría extenderse fácilmente para incluir IE, aunque no tengo acceso a un sistema de Windows para probar esto. Hay otras soluciones a este problema en forma de extensiones de Chrome (por ejemplo, Pegar contraseña de ITC y Permitir pegar en el texto de los campos, aunque no las he probado) y supongo que hay complementos similares disponibles para los otros navegadores. Personalmente me gusta la simplicidad del bookmarklet. El código está alojado en pastebin si quieres jugar con él:
(ED: Y su fuente también aparece debajo de este extracto, en su página vinculada).

DaaBoss
fuente
2

Tenga en cuenta que algunos navegadores eliminan en silencio la javascript:parte del código. Por lo tanto, asegúrese de que el código en la barra de direcciones sea exactamente el siguiente (escriba manualmente javascript:), de lo contrario no funcionará

Para el sitio web específico que ha mencionado en su pregunta, use el siguiente código

javascript:void($('#pwd, #pwd2').unbind('paste'));

Para casi todos los otros sitios web, pegue el siguiente código JavaScript en la barra de direcciones

javascript:void(document.querySelectorAll("input").forEach(function(element){element.setAttribute("onpaste","")}));
Tomás Echeverri Valencia
fuente
1
¿Intentó su sugerencia en la página con la que tuve un problema ? Lo acabo de hacer y todavía aparece un cuadro de diálogo "Escriba su contraseña" cuando intenta pegar en el campo de contraseña.
Mark Booth
Para ese sitio específicamente, use el siguiente códigojavascript:void($('#pwd, #pwd2').unbind('paste'));
Tomás Echeverri Valencia
He actualizado la respuesta con el fragmento (comentario anterior anterior) que funciona para ese sitio web específico. Pero probablemente no funcionará en ningún otro lugar
Tomas Echeverri Valencia
Chrome elimina la javascript:parte del código que pega en la barra de direcciones Debe asegurarse de que el fragmento que ejecuta sea exactamente el que comparto anteriormente, de lo contrario no funcionará
Tomas Echeverri Valencia
1
He actualizado la respuesta para que la gente sepa la necesidad de agregar manualmente javascript:al pegar en la barra de direcciones
Tomas Echeverri Valencia
0

Parece que desde que hice esta pregunta, la extensión original Don't fuck with paste de Jacob Swanner ha mejorado mucho, y Aaron Raimist la ha trasladado a Firefox .

Ambos ahora permiten que esta funcionalidad se habilite por sitio, y aunque no soluciona automáticamente el problema en el sitio problemático de petplanet que mencioné, habilitarlo manualmente ahora soluciona el problema en ese sitio.

Mark Booth
fuente