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 🙂