Prevenirea înregistrării utilizatorilor cu rol de administrator în WordPress

YouTube Logo Urmărește canalul nostru de YouTube

Prevenirea înregistrării utilizatorilor cu rol de administrator în WordPress

În WordPress, securitatea este un aspect esențial, mai ales atunci când vine vorba de protecția împotriva utilizatorilor care încearcă să se înregistreze cu roluri privilegiate, cum ar fi cel de administrator. În acest articol, vom implementa un cod care previne înregistrarea utilizatorilor cu rol de administrator și notifică administratorul site-ului despre această tentativă.

Scenariu

Când un utilizator se înregistrează și primește automat rolul de administrator (din greșeală sau printr-un atac), codul va elimina acest rol și va atribui utilizatorului un rol mai puțin privilegiat, cum ar fi cel de abonat. Totodată, administratorul va primi un email de notificare cu detalii despre această tentativă.

Codul funcțional

Acest cod trebuie adăugat în fișierul functions.php al temei tale active sau într-un plugin personalizat. El verifică dacă un utilizator nou are rolul de administrator și ajustează rolul respectiv.

function prevent_admin_registration($user_id) {
    // Obține informațiile despre utilizator
    $user = get_userdata($user_id);

    // Verifică dacă rolul de administrator este atribuit
    if (in_array('administrator', $user->roles)) {
        // Elimină rolul de administrator
        $user->remove_role('administrator');

        // Adaugă un rol de abonat sau un rol implicit de utilizator
        $user->add_role('subscriber');

        // Trimitere email de notificare către admin
        wp_mail(
            'exemplu@domeniultau.ro', // Înlocuiește cu adresa ta de email
            'Tentativă de înregistrare ca administrator',
            'Un utilizator a încercat să se înregistreze cu rol de administrator și a fost blocat. Verificați contul său în panoul de administrare.'
        );
    }
}
add_action('user_register', 'prevent_admin_registration');

Cum funcționează acest cod

  1. Când un utilizator se înregistrează, funcția este declanșată de acțiunea user_register.
  2. Se verifică dacă utilizatorul are rolul de administrator prin intermediul proprietății $user->roles.
  3. Dacă rolul de administrator este găsit, acesta este eliminat cu metoda remove_role și se atribuie un rol mai sigur, cum ar fi cel de abonat, folosind metoda add_role.
  4. Se trimite un email către administratorul site-ului pentru a-l notifica despre tentativă.

Personalizarea codului

  • Poți schimba adresa de email de la linia unde este folosită funcția wp_mail cu adresa ta personală sau cu cea a echipei de administrare.
  • Poți modifica textul emailului pentru a include mai multe detalii despre utilizatorul înregistrat.

Avantaje

  • Îmbunătățește securitatea site-ului WordPress.
  • Asigură că utilizatorii nu obțin accidental sau intenționat acces la roluri privilegiate.
  • Notificarea prin email permite administratorului să acționeze rapid.

Concluzie

Acest cod este o soluție simplă și eficientă pentru a preveni abuzurile în procesul de înregistrare al utilizatorilor pe un site WordPress. Implementându-l, te asiguri că utilizatorii nu pot obține acces neautorizat la funcționalități administrative, contribuind astfel la securitatea generală a site-ului tău.

× YouTube Logo

🔔 Abonează-te la canalul nostru!

Primește cele mai noi tutoriale WordPress direct pe YouTube!

×