Wtyczki Must Use – jak zmienić zapomniane hasło do kokpitu?

Wtyczki Must Use to specjalny rodzaj wtyczek, które posiadają trochę inny sposób działania niż normalne wtyczki. Niektóre z ich cech można wykorzystać przy rozwiązywaniu codziennych problemów administratora 😉 Na przykładzie zmiany hasła do panelu administracyjnego WordPressa pokażę ich zastosowania.

Taki scenariusz przerabiałem już kilka razy: właściciel strony zapomniał do niej hasła, a dodatkowo jedyna droga do dostania się do strony prowadzi przez FTP (być może miałem pecha, ale bardzo często nie mogłem się doprosić o dane do interfejsu zarządznia bazą danych MySQL).

Jednym z rozwiązań tego typu problemu jest ten skrypt. Ja natomiast stosuję w takich sytuacjach jeszcze prostszy skrypt, który wymaga ode mnie:

  • ustawienia w nim nowego hasła oraz nazwy użytkownika, któremu chcemy zmienić hasło,
  • wrzucenia pliku na serwer do katalogu wp-content/mu-plugins (jeżeli takowego nie ma, to trzeba go utworzyć),
  • odświeżenia strony,
  • usunięcia pliku z serwera.

Zaletą tego rozwiązania w porównaniu do wspomnianego skryptu jest to, że nie ryzykujemy, że ktoś zmieni hasło przed nami a dodatkowo nie da się zapomnieć o usunięciu pliku, bo bez jego usunięcia po prostu się nie zalogujemy 🙂 Ok, może trochę tu przesadzam z brakiem w wiary w działanie zabezpieczeń polegających na głębokim ukryciu – generalnie obie metody można traktować jako równorzędne 🙂

Skrypt, którego używam jest następujący:

<?php

/*
Plugin Name: Password Reset
*/ 

$user_login = 'ADMIN_USERNAME';
$user_pass = 'NEW_PASSWORD';
$wpdb->query("UPDATE $wpdb->users SET user_pass = MD5('$user_pass'), user_activation_key = '' WHERE user_login = '$user_login'");

Dlaczego to działa?

Metoda ta działa, ponieważ wtyczki Must Use nie wymagają aktywacji z poziomu kokpitu – samo umieszczenie ich w katalogu wp-content/mu-plugins powoduje, że ich kod wykona się przy każdym wywołaniu strony. Dodatkowo wykona się on przed wszystkimi innymi wtyczkami.

Tych, których może przerażać fakt, że zmieniam sobie hasło po prostu podając sumę MD5 uspokajam – WordPress po wykryciu takiego hasła posoli je i tym samym uczyni dużo bezpieczniejszym 🙂

  • Z bazą to same problemy… jak ktoś ma cpanel to tylko przez admina serwera a ci często nie chcą podać dostepu do serwera… nawet jeżeli jest stosowany zapis w umowie o klauzuli poufności czyli pomóż ale nie damy Ci tego czego potrzebujesz.

    Dzięki za trick bo nigdy nie wpadłem na to.

  • Ja korzystam z http://mojeprogramy.com/awaryjne-logowanie-do-wordpress-a i jest jeszcze lepiej

    • Ten skrypt jest widzę generalnie bardzo podobny do tego podlinkowanego w moim wpisie a jak wspominałem – mimo trochę większej wygody ma on pewne wady 🙂

  • Ciekawe rozwiązanie, jednak nie dla wszystkich. Osoby nie techniczne na pewno będą miały z tym problem aby użyć tej wtyczki. Ostatnio moja klientka zapomniała hasła do kokpitu. Dla mnie idealnym rozwiązaniem była jego zmiana w phpmyadmin.
    Aczkolwiek warto znać taką wtyczkę, gdyby klient dał nam np. tylko dostęp do FTP, bo np. nie zna hasła do phpmyadmin.