หยุด LastPass กรอกแบบฟอร์ม


131

มีวิธีป้องกันไม่ให้ส่วนขยายเบราว์เซอร์ LastPass กรอกแบบฟอร์ม HTML ด้วยช่องป้อนข้อมูลที่มีชื่อ "ชื่อผู้ใช้" หรือไม่

นี่เป็นช่องที่ซ่อนอยู่ดังนั้นฉันจึงไม่ต้องการให้ซอฟต์แวร์ใด ๆ ใช้ฟิลด์นี้เพื่อจุดประสงค์:

<input type="text" name="username" id="checkusername" maxlength="9" value="1999" class="longinput" style="display:none">

วิธีแก้ปัญหาไม่ควรเป็นเช่น "เปลี่ยนชื่อช่องป้อนข้อมูล"


12
หากช่องถูกซ่อนไว้ควรตั้งค่าtype="hidden"แทนการซ่อนด้วย CSS
Reeno

2
ดูเหมือนว่าคุณยอมรับคำตอบผิดเพราะมันไม่ได้ผล ... สิ่งที่ Alexander แนะนำได้ผลดังนั้นคุณอาจต้องการเปลี่ยนการเลือกของคุณ)
Dominique

2
ง่ายสุด ๆ$(':input').attr('data-lpignore', true);นั่นคือทั้งหมด สิ่งนี้จะทำให้ฟอร์ม lastpass diable กรอกในทุกแบบฟอร์ม
Adarsh ​​Madrecha

คำตอบ:


171

เพิ่ม

data-lpignore="true"

ไปยังช่องป้อนข้อมูลปิดใช้งานกล่อง LastPass [... ] สีเทาสำหรับฉัน

มาจากLastPass.com


5
นี่น่าจะเป็นคำตอบที่ถูกต้อง LP ดูเหมือนจะเคารพแอตทริบิวต์นี้และไม่ต้องการชื่อหรือรหัสหรือบทบาท "ค้นหา" ที่บ้าคลั่ง
Corneliu

28
สิ่งนี้จะลบไอคอนสีเทาเท่านั้น แต่ไม่หยุด LastPass เพื่อละเว้นการป้อนข้อมูลอัตโนมัติ
Arnis Juraga

27
นี่ไม่ควรเป็นคำตอบที่ยอมรับเนื่องจากไม่ "หยุด LastPass กรอกแบบฟอร์ม"
Conrad Warhol

3
ตามลิงค์ที่ให้ไว้ในคำตอบ ( lastpass.com/support.php?cmd=showfaq&id=10512 ) LP จะป้องกันไม่ให้ไอคอนแสดงในฟิลด์นั้นเท่านั้น
Kunal

47

ต้องปฏิบัติตามเงื่อนไขสองประการ:

  1. รูปแบบ (ไม่ใช่องค์ประกอบ) ต้องมีautocomplete="off"แอตทริบิวต์
  2. ผู้ใช้ Lastpass ต้องเปิดใช้งานตัวเลือกนี้: Settings > Advanced > Allow pages to disable autofill

ดังนั้นจึงขึ้นอยู่กับทั้งผู้ใช้และผู้พัฒนา


39

สิ่งที่ได้ผลสำหรับฉันคือการมีคำว่า "-search-" ใน id ของแบบฟอร์มบางอย่างเช่น<form id="affiliate-search-form">- และ lastpass ไม่ได้เพิ่มองค์ประกอบลงในอินพุตแบบฟอร์ม ใช้งานได้กับสิ่งที่ง่ายกว่าเช่น<form id="search">แต่ใช้ไม่ได้กับ<form id="se1rch">


8
นอกจากนี้จะถูกระงับหาก: - หากชื่อฟิลด์หรือแอตทริบิวต์คลาสมีคำว่า "ค้นหา" หรือ "srch" - หากรหัสฟอร์มหรือแอตทริบิวต์ชื่อมี "การค้นหา" - แอตทริบิวต์บทบาทของฟอร์มคือ "ค้นหา"
e1v

1
ขออภัยสิ่งนี้ใช้ไม่ได้กับฟิลด์รหัสผ่าน แบบฟอร์มยังคงกรอกข้อมูลอัตโนมัติได้อย่างมีประสิทธิภาพ ในกรณีของฉันการเพิ่มsearchเป็นคลาสทั้งชื่อผู้ใช้และรหัสผ่านปิดใช้งานปุ่มดอกจันบนช่องชื่อผู้ใช้ แต่ช่องรหัสผ่านยังคงเป็นอยู่
Mike Rockétt

2
ใช่ฉันสามารถยืนยันได้ว่าช่องรหัสผ่านยังคงถูกกรอกเมื่อใช้วิธีนี้ :-(
Simon East

7
สิ่งนี้ใช้ไม่ได้กับ Lastpass เวอร์ชันปัจจุบันอีกต่อไป ดังนั้นคำตอบนี้ควรถูกลบออก
Heroselohim

4
เพิ่ม -search- ไปยัง id ของช่องป้อนข้อมูลเดียวใช้ได้กับฉันใน Chrome 51, LastPass 4.1.17 การเพิ่มลงในแบบฟอร์มไม่ได้ช่วยอะไร
Alex2php

18

ฉันรู้ว่าฉันมางานปาร์ตี้ที่นี่ช้า แต่ฉันพบสิ่งนี้เมื่อฉันพยายามหยุด lastpass ไม่ให้ทำลายแบบฟอร์มของฉัน @takeshin ถูกต้องในการเติมข้อความอัตโนมัตินั้นไม่เพียงพอ ฉันลงเอยด้วยการแฮ็คด้านล่างเพื่อซ่อนสัญลักษณ์ ไม่สวย แต่ฉันกำจัดไอคอน

หากผู้พัฒนา lastpass กำลังอ่านสิ่งนี้โปรดระบุแอตทริบิวต์ที่จะใช้เพื่อที่เราจะได้ไม่ต้องหันไปใช้สิ่งเช่นนี้

form[autocomplete="off"] input[type="text"] {
    background-position: 150% 50% !important;
}

2
นี่เป็นวิธีแก้ปัญหาเดียวที่ใช้ได้ผลสำหรับฉัน (แม้ว่าจะเล่นกับการตั้งค่า lastpass ซึ่งจริงๆแล้วฉันไม่ได้คาดหวังว่าผู้ใช้ของฉันจะทำเช่นนั้น) แม้ว่ามันจะขัดแย้งกับการที่ฉันตั้งค่าของตัวเองbackground-imageในช่องป้อนข้อมูล (ฉันชอบใส่ "clear ปุ่ม "ในช่องป้อนข้อมูล) - ในกรณีนี้สิ่งที่ใช้ได้ผลสำหรับฉันคือการตั้งค่าbackground-imageและbackground-positionมี!importantการแทนที่สไตล์ builtin LastPass
Guss

ความคิดสร้างสรรค์มาก! ขอบคุณสำหรับสิ่งนี้!
Howard

18

ฉันคิดว่า lastpass ให้เกียรติautocomplete="off"แอตทริบิวต์สำหรับอินพุต แต่ฉันไม่แน่ใจ 100%

แก้ไข ตามที่คนอื่น ๆ ชี้ให้เห็น สิ่งนี้ใช้ได้เฉพาะเมื่อผู้ใช้กำหนดค่าพาสล่าสุดให้เป็นไปตามนี้


20
ใช่ แต่ไม่ใช่โดยค่าเริ่มต้น: helpdesk.lastpass.com/extension-preferences/advanced
Marco

12
ฉันสามารถยืนยันได้ว่า lastpass ไม่ให้เกียรติautocomplete="off"ในระดับฟอร์ม นั่นทำให้ฉันเสียเวลาพัฒนาไปหนึ่งชั่วโมงในแบบฟอร์ม "แก้ไขผู้ใช้" ซึ่งดูเหมือนว่าจะแสดงที่อยู่อีเมลผิด ค่ากำหนด lastpass มีตัวเลือก "ไม่เขียนทับฟิลด์ที่กรอกไว้แล้ว" ซึ่งช่วยได้มาก
Jason

7
ตามที่มาร์โกระบุคุณต้องเปิดใช้งานพฤติกรรมนี้ ค่ากำหนด -> ขั้นสูง -> เคารพการทำให้สมบูรณ์อัตโนมัติ = ปิด: อนุญาตให้เว็บไซต์ปิดใช้งานการป้อนอัตโนมัติ
Dan

คุณจะข้ามสิ่งนี้ใน lastpass ได้อย่างไร?
Crash893

14

สำหรับฉันทำงานอย่างใดอย่างหนึ่งtype=searchซึ่งเท่ากับtextหรือใช้role=noteหรือใช้

คุณสามารถตรวจสอบ LastPass-JavaScript ได้ แต่มันใหญ่มากคุณอาจพบวิธีแก้ปัญหาบางอย่างที่นั่นจากสิ่งที่ฉันเห็นพวกเขาตรวจสอบประเภทอินพุต 4 เท่านั้นดังนั้นinput type=searchจะเป็นวิธีแก้ปัญหาหนึ่ง:

!c.form && ("text" == c.type || "password" == c.type || "url" == c.type || "email" == c.type) && lpIsVisible(c))

นอกจากนี้ยังเป็นroleคำหลักที่ดูเหมือนจะละเลย:

var c = b.getAttribute("role");
switch (c) {
case "navigation":
case "banner":
case "contentinfo":
case "note":
case "search":
case "seealso":
case "columnheader":
case "presentation":
case "toolbar":
case "directory":`

ฉันตรวจสอบ LastPass ' onloadwff.jsเตรียมรหัส 26.960 บรรทัด :)


5
ฉันลองทำตามคำตอบทั้งหมดข้างต้นแล้วและtype=searchเป็นเพียงสิ่งเดียวที่เหมาะกับฉัน
Ryan King

1
+1 ดูเหมือนว่าการใช้type=searchเป็นวิธีเดียวที่จะป้องกันการป้อนอัตโนมัติโดยไม่คำนึงถึงสถานะของการตั้งค่า LastPass "Respect autocomplete = off"
johnnyRose

พยายามเพิ่มหรือrole="note" type="search"ไม่มีการทำงานบน Chrome ล่าสุดและ lastpass ล่าสุด
Nikita 웃

ดูเหมือนว่าlpignoreจะใช้งานได้อีกครั้งหลอกฉันhttps://jsfiddle.net/78z0L1sa/3/
MushyPeas

OMG มันน่ารำคาญ LastPass กำลังแปลงฟิลด์ type = text password ของฉันเป็น type = password และต้องเห็นรหัสผ่านบนหน้าจอนี้จากนั้น LastPass จึงเพิ่มรหัสผ่านของไซต์และไม่ใช่รหัสผ่านที่ถูกต้องโดยที่ผู้ใช้ไม่ทราบเมื่อบันทึก กำลังเปลี่ยนข้อมูลรับรองและทำลายการเชื่อมต่อกับระบบอื่น lpignore ลบไอคอนออกเท่านั้นโซลูชันอื่น ๆ จำเป็นต้องมีการโต้ตอบกับผู้ใช้ซึ่งไม่เหมาะ ในที่สุดการเปลี่ยนประเภทเพื่อค้นหาก็ใช้ได้ผล แม้ว่าฉันจะเกลียดที่ต้องทำเช่นนี้เพราะซอฟต์แวร์ของคนอื่น ยังไงก็ตามโหวตเรื่องนี้
Jason Martin

10

เพิ่ม "การค้นหา" ในรหัสการป้อนข้อมูล

<input type="text" name="user" id="user-search"/>

1
ใช้ได้ดีสำหรับฉัน ทดสอบกับ Chrome รุ่นล่าสุด มันเป็นการแฮ็กเล็กน้อย แต่ไม่สามารถทำลายได้เหมือนอย่างอื่นดังนั้นฉันจะไป
Tedd Hansen

6

ไปงานปาร์ตี้ช้าไปหน่อย แต่ฉันเพิ่งประสบความสำเร็จด้วยการแก้ไขแบบฟอร์มด้วย:

<form autocomplete="off" name="lastpass-disable-search">

ฉันเดาว่าคนโง่คนนี้คิดว่าเป็นรูปแบบการค้นหา อย่างไรก็ตามสิ่งนี้ใช้ไม่ได้กับฟิลด์รหัสผ่าน! Lastpass ละเว้นช่องชื่อในกรณีนี้

วิธีเดียวที่ฉันสามารถทำได้คือเพิ่มสิ่งต่อไปนี้ที่ด้านบนของแบบฟอร์มโดยตรง:

<form autocomplete="off">
    <div id="lp" ><input type="text" /><input type="password" /></div><script type="text/javascript">setTimeout(function(){document.getElementById('lp').style.display = 'none'},75);</script>
</form>

มันทำให้เกิดการสั่นไหวที่น่ารังเกียจ แต่จะลบเรื่องไร้สาระของการป้อนอัตโนมัติแม้ว่าจะยังคงแสดงวิดเจ็ต "สร้างรหัสผ่าน" ก็ตาม LastPass รอจนกว่า domready แล้วจึงตรวจสอบว่ามีช่องรหัสผ่านที่มองเห็นได้หรือไม่ดังนั้นจึงไม่สามารถซ่อนหรือย่อขนาดฟิลด์จำลองด้านบนได้


6

สำหรับ Lastpass รุ่นล่าสุดในเดือนตุลาคม 2019 การแก้ไขแบบง่ายๆนี้ดูเหมือนจะดีที่สุด

เพิ่ม

type="search"

กับข้อมูลของคุณ

รูทีน lastpass ตรวจสอบtypeแอตทริบิวต์เพื่อพิจารณาว่าจะทำอย่างไรกับการป้อนอัตโนมัติและจะไม่ทำอะไรเลยใน html5 typeของ "search" นี้ การแก้ไขนี้เป็นการแฮ็กเล็กน้อย แต่เป็นการเปลี่ยนแปลงบรรทัดเดียวที่สามารถลบออกได้อย่างง่ายดายเมื่อแก้ไขสคริปต์บั๊ก

หมายเหตุ: หลังจากทำเช่นนี้ข้อมูลที่คุณป้อนอาจมีสไตล์ที่แตกต่างไปจากเบราว์เซอร์บางตัวหากรับtypeแอตทริบิวต์ ถ้าคุณสังเกตนี้คุณสามารถป้องกันไม่ให้มันเกิดขึ้นโดยการตั้งค่าเบราว์เซอร์ที่เฉพาะเจาะจงคุณสมบัติ CSS -webkit-appearanceและ-moz-appearanceไป'none'กับการป้อนข้อมูลของคุณ


4

รหัสสไตล์ ES6 นี้มีประโยชน์สำหรับฉันเพราะมันเพิ่มdata-lpignoreให้กับตัวควบคุมอินพุตทั้งหมดของฉัน:

const elements = document.getElementsByTagName("INPUT");
for (let element of elements) {
    element.setAttribute("data-lpignore", "true");
}

ในการเข้าถึงการควบคุม INPUT ที่เฉพาะเจาะจงเราสามารถเขียนสิ่งนี้:

document.getElementById('userInput').setAttribute("data-lpignore", "true");

หรือคุณสามารถทำได้โดยใช้ชื่อชั้น:

const elements = document.getElementsByClassName('no-last-pass');
for (let element of elements) {
    element.setAttribute("data-lpignore", "true");
}

1

ไม่มีตัวเลือกใดที่นี่ (การเติมข้อความอัตโนมัติ data-lpignore ฯลฯ ) ทำให้ LastPass ไม่สามารถกรอกข้อมูลในช่องฟอร์มของฉันโดยอัตโนมัติได้ ฉันใช้วิธีค้อนเลื่อนมากขึ้นในปัญหาและตั้งค่าnameแอตทริบิวต์การป้อนข้อมูลแบบอะซิงโครนัสผ่าน JavaScript แทน ฟังก์ชันขึ้นอยู่กับ jQuery ต่อไปนี้ (เรียกใช้จากตัวจัดการเหตุการณ์ onsubmit ของฟอร์ม) ทำเคล็ดลับ:

function setInputNames() {
    $('#myForm input').each(function(idx, el) {
        el = $(el);
        if (el.attr('tmp-name')) {
            el.attr('name', el.attr('tmp-name'));
        }
    });
}

$('#myForm').submit(setInputNames);

ในรูปแบบฉันใช้tmp-nameแอตทริบิวต์แทนnameแอตทริบิวต์ที่เทียบเท่ากัน ตัวอย่าง:

<form id="myForm" method="post" action="/someUrl">
    <input name="username" type="text">
    <input tmp-name="password" type="password">
</form>

อัปเดต 2019-03-20

ฉันยังคงประสบปัญหากับด้านบนเนื่องจาก AngularJS ขึ้นอยู่กับฟิลด์แบบฟอร์มที่มี nameแอตทริบิวต์เพื่อให้ ngMessages แสดงข้อความแสดงข้อผิดพลาดการตรวจสอบความถูกต้องของฟิลด์ได้อย่างถูกต้อง

ในที่สุดวิธีแก้ปัญหาเดียวที่ฉันสามารถพบเพื่อป้องกัน LastPass กรอกรหัสผ่านในแบบฟอร์มเปลี่ยนรหัสผ่านของฉันคือ:

  1. หลีกเลี่ยงการใช้input[type=password]ทั้ง AND
  2. ไม่มี 'รหัสผ่าน' ในชื่อฟิลด์

เนื่องจากฉันต้องสามารถส่งแบบฟอร์มได้ตามปกติในกรณีของฉันฉันยังคงใช้โซลูชันดั้งเดิมของฉันเพื่ออัปเดตชื่อฟิลด์ 'ทันเวลา' เพื่อหลีกเลี่ยงการใช้ช่องใส่รหัสผ่านฉันพบว่าโซลูชันนี้ใช้งานได้ดีมาก


0

พยายามเปลี่ยนชื่อ - ค้นหา แต่ด้วยเหตุผลบางอย่างที่ไม่ได้ผล สิ่งที่ใช้ได้ผลสำหรับฉันมีดังต่อไปนี้:

  1. ทำเครื่องหมายแบบฟอร์มเพื่อเติมข้อความอัตโนมัติ - เติมข้อความอัตโนมัติ = "ปิด"
  2. เปลี่ยนประเภทการป้อนข้อมูลในช่องฟอร์มเป็นข้อความ
  3. เพิ่มคลาสใหม่ใน css ของคุณเพื่อปิดบังอินพุตจำลองฟิลด์รหัสผ่าน
  4. css bit: input.masker {-webkit-text-security: disc; }

พยายามและทดสอบใน FF และ Chrome เวอร์ชันล่าสุด


0

นี่คือสิ่งที่ใช้ได้ผลสำหรับฉันในการป้องกันไม่ให้ lastpass กรอก razor @ Html.EditorFor box ใน Chrome:

คลิกไอคอน LastPass ที่ใช้งานอยู่ในแถบเครื่องมือของคุณจากนั้นไปที่ตัวเลือกบัญชี> การตั้งค่าส่วนขยาย

ในหน้าจอนี้ให้เลือก "อย่าเขียนทับช่องที่กรอกไว้แล้ว" (ที่ด้านล่าง)

จากนั้นคลิก "ขั้นสูง" ทางด้านซ้าย

ในหน้าจอนี้ให้เลือก "Respect AutoComplete = off: อนุญาตให้เว็บไซต์ปิดใช้งานการป้อนอัตโนมัติ"

ฉันไม่จำเป็นต้องทำอะไรเป็นพิเศษในแบบฟอร์ม ASP cshtml ของฉัน แต่ฉันมีค่าเริ่มต้นในรูปแบบสำหรับกล่อง @ Html.EditorFor

ฉันหวังว่าสิ่งนี้จะช่วยและใช้ได้ผลกับใครบางคน ฉันไม่พบความช่วยเหลือเฉพาะของ Razor เกี่ยวกับปัญหานี้บนเว็บดังนั้นฉันจึงคิดว่าฉันจะเพิ่มสิ่งนี้เนื่องจากฉันคิดออกด้วยความช่วยเหลือของลิงค์ด้านบนและการมีส่วนร่วม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.