Jak mogę selektywnie wyłączyć blokowanie wklejania

37

W miarę jak coraz więcej stron internetowych dodaje kod blokujący wklejanie tego lub innego typu do pól e-mail i haseł, a coraz więcej osób korzysta z menedżerów haseł, te dwa coraz częściej wchodzą w konflikt.

Chociaż istnieją rozszerzenia takie jak Nie zadzieraj z pastą do Chrome lub Wyłącz manipulacji schowka i dom.event.clipboardevents.enabledpreferencji do Firefoksa, wszystkie z nich cierpi na ten problem, że nie uzasadnione powody, dla stron internetowych chcą się podłączyć do onpaste(takie jak Google Docs tekstu sformatowanego wsparcie lub obsługa linków na Facebooku), więc nie chcę, aby ta funkcja była całkowicie wyłączona.

† Przejdź do about:configi wyszukaj, dom.event.clipboardevents.enableda następnie kliknij dwukrotnie, aby przełączyć.

Inną opcją jest ręczne zhakowanie każdej znalezionej strony za pomocą szkodliwego kodu, ale jest to bardzo kłopotliwe i nie działa w każdym przypadku (na przykład na tej stronie ). Jedną z sugestii, jak to zrobić, można znaleźć w polu Wklej hasła Martina Brinkmanna do zablokowanych pól formularza na stronie internetowej .

Idealnie byłoby po prostu móc powiedzieć „Ponownie włącz wklejanie na wszystkich polach na tej stronie” jako przycisk lub opcję menu kontekstowego dla strony, więc czy można to zrobić?

Najbliższą rzeczą, jaką znalazłem, jest ponowne włączanie wklejania haseł przez Derek Prior w irytujących formularzach internetowych, ale używa tej samej metody co metoda ręczna, więc nie działa z określoną stroną, z którą miałem problemy, i nie mam pojęcia, z iloma inne metody mogą być dostępne.

Mark Booth
źródło
Czy te witryny blokują również zapisywanie hasła we wbudowanej przeglądarce (np. Firefox)? Może rób co robi?
Xen2050,
1
Don't fuck with pastepozwala wybrać określone strony internetowe, dla których należy wyłączyć manipulacje
Ruslan
Dzięki @Ruslan, zweryfikowałem, że to rozszerzenie rozwiązuje teraz mój problem i dodałem odpowiedź, aby to odzwierciedlić.
Mark Booth

Odpowiedzi:

11

Formularze internetowe, które mają tę funkcję blokowania wklejania, mogą ją zadeklarować za pomocą atrybutu onpaste dla pola tekstowego lub przez powiązanie zdarzenia za pomocą JavaScript lub jQuery .

W przeciwieństwie do tego, co powiedziałeś, udało mi się sprawić , aby bookmarklet Dereka Priora działał w Chrome (wersja 39 w systemie Windows) ze stronami, które miały atrybuty (type = „password” onPaste = „return false”) w polu tekstowym hasła

Możesz także wypróbować bookmarklet Chrisa Baileya, który łamie blokery wklejania zaimplementowane przez JavaScript.

Jest to trochę kłopotliwe, ale inną alternatywą jest tymczasowe wyłączenie JavaScript dla tej strony, co z kolei wyłączy blokowanie wklejania JavaScript. W przypadku Chrome skrót klawiaturowy do otwierania Narzędzi deweloperskich to F12, aby przejść do panelu Ustawienia to F1, a tutaj znajdziesz pole wyboru Wyłącz JavaScript w sekcji Ogólne.

wprowadź opis zdjęcia tutaj

mvark
źródło
Dzięki mvmark . Dochodząc dalej, wygląda na to, że konkretna strona, z którą miałem problem, korzysta z innej metody. Zaktualizowałem moje pytanie i myślę, że może być potrzebne pytanie Przepełnienie stosu , aby uzyskać ostateczną listę możliwych metod, aby można było napisać bookmarklet, który obejmuje je wszystkie.
Mark Booth
Wykonano: stackoverflow.com/q/27704355/42473
Mark Booth
@MarkBooth W Chrome możesz tymczasowo wyłączyć JavaScript dla tej strony, co z kolei spowoduje wyłączenie blokady wklejania JavaScript za pomocą skrótu F12 - F1. Proszę zobaczyć moją zaktualizowaną odpowiedź powyżej.
mvark,
1
Dzięki mvark , to świetne obejście dla Chrome. W przeglądarce Firefox zainstalowałem opcję Wyłącz manipulacje schowka i przypiąłem Menedżera dodatków, aby łatwo było włączyć lub wyłączyć.
Mark Booth,
1
@annan zaktualizował martwy link za pomocą zarchiwizowanego linku do artykułu web.archive.org/web/20170908125754/http://prioritized.net/blog/…
mvark
7

Dla stron używających jquery (w zasadzie wszystkich stron internetowych). Możesz wkleić następujący adres javascript do paska adresu

javascript:void($('input').attr('onpaste', ''));
Att Righ
źródło
2

1 .--- Może to spowodować, że problem zniknie przynajmniej dla kilku witryn: SKARGAJĄC, i niech te strony wiedzą, że niszczą, nie zwiększając bezpieczeństwa dla swoich użytkowników. Może po prostu tego nie przemyśleli ...

Oto tekst, który właśnie skopiowałem z bloga Chrisa Baileya, który ma jego bookmarklet. (Wskazówka: zachowaj to w swoich zakładkach) .
-> Sugeruję, abyś wysłał CZĘŚĆ z poniższych do dowolnej witryny, która wymaga ponownej edukacji:

Ponowne włączanie wklejania haseł w irytujących formularzach internetowych (v2)

Bezpieczeństwo nie należy lekceważyć, więc w ostatnich dniach coraz bardziej denerwuje mnie nacisk niektórych firm na wyłączenie funkcji wklejania haseł do formularzy logowania. Zamiast zwiększać bezpieczeństwo, kaleczy to nas, którzy używają menedżerów haseł, takich jak KeePass, [LastPass] lub 1Password, ponieważ ładne długie, losowo generowane hasła nie mogą być po prostu wklejone w pole hasła. Zamiast tego użytkownicy są zmuszeni do ręcznego wpisywania haseł, które będą promować stosowanie krótszych haseł (a tym samym osłabiać bezpieczeństwo).

Znalazłem to w firmach takich jak Apple, Vodafone i Nestlé.

Na szczęście znalazłem rozwiązanie w formie bookmarkletu. Pierwotny pomysł powstał na blogu Ponowne włączanie wklejania haseł w irytujących formularzach internetowych autorstwa Dereka Priora. Niestety jego metoda po prostu usuwa bezpośrednio atrybut onpaste, ale to nie działa, jeśli strona internetowa korzysta ze struktury obsługi zdarzeń, takiej jak jQuery. Wziąłem oryginalny kod Dereka i zmodyfikowałem go, aby lepiej działał z tymi frameworkami.

2. -> Wypróbuj bookmarklet Chrisa dostępny tutaj , ale tylko w Chrome, Operze lub Vivaldi, gdy strona NIE używa JQuery:

3 .--> Poproś kogoś o napisanie kompleksowej wtyczki dla wszystkich przeglądarek. Aby rozpocząć, oto jego komentarze i referencje źródłowe ze strony Chrisa:

Aby skorzystać z bookmarkletu, przeciągnij poniższy link do paska zakładek przeglądarki.

Uwaga dotycząca zgodności: bookmarklet działa tylko w Chrome i Safari ze względu na trudność odczytu danych ze schowka w Firefox. Można go łatwo rozszerzyć o IE, chociaż nie mam dostępu do systemu Windows, aby to przetestować. Istnieją inne rozwiązania tego problemu w postaci rozszerzeń chrome (np. Wklej hasło ITC i zezwól na wklejanie do pól tekstowych, chociaż ich nie testowałem) i zakładam, że podobne dodatki są dostępne dla innych przeglądarek. Osobiście podoba mi się prostota bookmarkletu. Kod jest hostowany na pastebin, jeśli chcesz się nim bawić:
(ED: Jego źródło znajduje się również poniżej tego fragmentu, na jego linkowanej stronie).

DaaBoss
źródło
2

Pamiętaj, że niektóre przeglądarki cicho usuwają javascript:część kodu. Upewnij się więc, że kod w pasku adresu jest dokładnie taki jak poniżej (wpisz ręcznie javascript:), w przeciwnym razie nie będzie działać

W przypadku konkretnej witryny internetowej wymienionej w pytaniu użyj następującego kodu

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

W przypadku prawie wszystkich innych witryn wklej następujący kod JavaScript w pasku adresu

javascript:void(document.querySelectorAll("input").forEach(function(element){element.setAttribute("onpaste","")}));
Tomas Echeverri Valencia
źródło
1
Czy wypróbowałeś swoją sugestię na stronie, z którą miałem problem ? Właśnie to zrobiłem i nadal pojawia się okno dialogowe „Wpisz hasło” podczas próby wklejenia w polu hasła.
Mark Booth
W przypadku tej witryny użyj następującego kodujavascript:void($('#pwd, #pwd2').unbind('paste'));
Tomas Echeverri Valencia
Zaktualizowałem odpowiedź za pomocą fragmentu kodu (poprzedni komentarz powyżej), który działa dla tej konkretnej witryny. Ale to chyba nie zadziała nigdzie indziej
Tomas Echeverri Valencia
Chrome usuwa javascript:część kodu, którą wklejasz w pasku adresu. Musisz upewnić się, że fragment, który uruchamiasz, jest dokładnie taki sam, jak ten, który udostępniam powyżej, inaczej nie zadziała
Tomas Echeverri Valencia,
1
Zaktualizowałem odpowiedź, aby ludzie wiedzieli o konieczności ręcznego dodawania javascript:podczas wklejania do paska adresu
Tomas Echeverri Valencia,
0

Wygląda na to, że odkąd zadałem to pytanie, oryginalne rozszerzenie Don't fuck with paste autorstwa Jacoba Swannera znacznie się poprawiło, a Aaron Raimist przeniósł je do przeglądarki Firefox .

Obie pozwalają teraz na włączenie tej funkcji dla poszczególnych witryn i chociaż nie rozwiązuje to automatycznie problemu na problematycznej stronie petplanet, o której wspomniałem, ręczne włączenie powoduje teraz naprawienie problemu na tej stronie.

Mark Booth
źródło