Cum să dezactivezi autocompletarea pe pagina wp-login.php

28 aug. 2014, 21:24:00
Vizualizări: 17.5K
Voturi: 6

Se pare că nu există o metodă simplă de a adăuga autocomplete="off" la câmpul de parolă pe pagina de login WordPress fără a edita direct fișierul wp-login.php.

Există vreo soluție pe care o omit? Nu doresc să modific fișierele core.

1
Comentarii

Aceasta este o problemă de conformitate PCI. Niciun site web nu poate trece un scan de conformitate PCI dacă câmpurile de parolă permit completarea automată.

Christopher Eller Christopher Eller
15 dec. 2015 20:40:19
Toate răspunsurile la întrebare 6
1

Singura ta soluție (fără a modifica fișierele de bază) este să folosești JavaScript.

function wpse_159462_login_form() {
    echo <<<html
<script>
    document.getElementById( "user_pass" ).autocomplete = "off";
</script>
html;
}

add_action( 'login_form', 'wpse_159462_login_form' );

Cu toate acestea, dacă nu ești singura persoană care se va autentifica, aș recomanda să nu dezactivezi completarea automată, deoarece cu siguranță va enerva oamenii.

28 aug. 2014 21:42:26
Comentarii

Unde se pune asta?

TheBlackBenzKid TheBlackBenzKid
25 oct. 2018 09:41:04
1

Dacă pe cineva interesează, iată o soluție care a funcționat pentru mine

if ( $GLOBALS['pagenow'] === 'wp-login.php' ) {
  ob_start();
}

add_action('login_form', function($args) {
  $login = ob_get_contents();
  ob_clean();
  $login = str_replace('id="user_pass"', 'id="user_pass" autocomplete="off"', $login);
  $login = str_replace('id="user_login"', 'id="user_login" autocomplete="off"', $login);
  echo $login; 
}, 9999);
22 nov. 2017 11:47:14
Comentarii

Puteți folosi ob_start() în acțiunea "login_form_login" în loc de if

Peter Ajtai Peter Ajtai
1 sept. 2023 03:45:54
0

Iată o soluție doar cu PHP la care am ajuns:

function disable_autofill_password($safe_text, $text) {
    if($safe_text === 'user_pass') {
        $safe_text .= '" autocomplete="new-password';
    }
    return $safe_text;
}
add_filter('attribute_escape', 'disable_autofill_password', 10, 2);

Este un mic hack al filtrului esc_attr, care închide atributul id al câmpului de parolă și apoi adaugă atributul autocomplete (valoarea new-password este folosită pentru Chrome).

6 sept. 2016 15:17:40
0

cineva a creat un plugin care face exact asta, nu se află în depozitul de plugin-uri WordPress, dar este destul de simplu și funcționează perfect. Este o practică bună să verifici codul sursă dacă ai dubii despre plugin-uri care nu sunt listate în depozitul WordPress, eu am făcut-o și nu am găsit nimic suspect.

vezi codul aici: https://www.buzelac.com/2014/10/disabling-wordpress-login-password-autocomplete/

sau descarcă plugin-ul de aici: https://www.buzelac.com/wp-content/uploads/2015/05/disable-login-autocomplete.zip

nu este mult de spus, pur și simplu înlocuiește 'id="user_pass"' cu 'id="user_pass" autocomplete="off"' când formularul de autentificare este generat:

$content = str_replace('id="user_pass"', 'id="user_pass" autocomplete="off"', $content);

7 mar. 2019 14:21:51
0

Încearcă PHP Output Buffering:

add_action('login_header', function () {
    ob_start(); // Pornim buffer-ul de ieșire
});

add_action('login_footer', function () {
    $content = ob_get_clean(); // Preluăm conținutul din buffer și oprim buffering-ul
    $content = str_replace(' name="log"', ' name="log" autocomplete="off"', $content); // Adăugăm autocomplete="off" pentru câmpul de utilizator
    $content = str_replace(' name="pwd"', ' name="pwd" autocomplete="off"', $content); // Adăugăm autocomplete="off" pentru câmpul de parolă
    echo $content; // Afișăm conținutul modificat
});
5 nov. 2019 04:47:54
1
-4

Deschideți fișierul wp-login.php și adăugați autocomplete="off" în câmpul "Nume utilizator". Găsiți formularul numit loginform și adăugați astfel:

class="input" value="" size="20" autocomplete="off"/>

8 mar. 2017 11:52:13
Comentarii

A spus că nu vrea să modifice fișierele de bază. De asemenea, nu ar trebui niciodată să modificați fișierele de bază.

Laxmana Laxmana
8 mar. 2017 14:34:10