Cara Reset Password Admin Drupal 9 dengan File PHP

Beberapa server hosting tidak mengizinkan akses SSH ke server web tempat situs Drupal diinstal sehingga tidak memungkinkan untuk memulihkan (reset) kata sandi akun administrator Drupal 9 melalui baris perintah. Metode berikut ini harus digunakan sebagai "pilihan terakhir" ketika teknik pemulihan kata sandi berbasis command-line tidak berhasil.
Metode pengaturan ulang kata sandi yang dijelaskan di bawah ini menggunakan skrip PHP yang harus diunggah ke server web untuk mengatur ulang kata sandi administrator. Akses untuk mengunggah file PHP ke server tempat situs dihosting diperlukan agar eksekusi metode ini berhasil.
Catatan: meninggalkan skrip pengaturan ulang kata sandi ini di server Anda setelah mengatur ulang kata sandi merupakan celah keamanan yang sangat penting yang memungkinkan siapa pun untuk mengatur ulang kata sandi administrator Anda. Gunakan skrip ini dengan hati-hati, dan selalu hapus skrip setelah Anda selesai menggunakannya.
Ikuti langkah-langkah berikut ini:
- Buat satu file dalam direktori/folder utama tempat website Drupal dipasang (yaitu, di mana index.php, update.php, robots.txt dan file serta direktori lainnya berada). Misalnya public_html/resetpw.php.
- Copy dan paste skrip PHP berikut dalam file PHP yang Anda buat seperti contoh: resetpw.php, lalu save file tersebut.
<?php
use Drupal\Core\DrupalKernel;
use Symfony\Component\HttpFoundation\Request;
if (pathinfo(__FILE__, PATHINFO_FILENAME) == 'admin-pass-reset') {
die('Please change your file name to a random string to continue');
}
// Boot Drupal.
$autoloader = require __DIR__ . '/autoload.php';
$request = Request::createFromGlobals();
$kernel = DrupalKernel::createFromRequest($request, $autoloader, 'prod', FALSE);
$kernel->boot();
// Get password hasher service.
$password_hasher = $kernel->getContainer()->get('password');
// Hash password.
if (isset($_GET['pass']) && !empty($_GET['pass'])) {
$newhash = $password_hasher->hash($_GET['pass']);
}
else {
die('Retry with ?pass=PASSWORD set in the URL');
}
// Update user password.
$updatepass = Drupal::database()->update('users_field_data')
->fields(array(
'pass' => $newhash,
// 'name' => 'admin',
// 'mail' => 'yourmail@example.com'
))
->condition('uid', '1', '=')
->execute();
// Clean user 1 cache.
Drupal::cache('entity')->delete('values:user:1');
print "<h2>Selesai!</h2> Delete segera file yang Anda telah buat";
- Ekseskusi skrip PHP diatas melalui link website Anda melalui web browser. Misalnya: http://example.com/resetpw.php?pass=admin
Pada URL di atas,
- ganti example.com dengan nama domain Anda yang sebenarnya,
- ganti resetpw.php dengan nama file sebenarnya yang Anda tentukan pada langkah pertama di atas,
- ganti admin dengan kata sandi baru yang diinginkan.
Catatan: Sangat disarankan agar Anda memilih kata sandi yang terdiri dari huruf besar dan kecil serta angka, dan setidaknya terdiri dari 12 digit.
- Jika skrip berhasil dijalankan, Anda akan melihat teks "Selesai!" Delete segera file yang Anda Telah buat, pada laman web Anda. Kata sandi akun administrator yang dibuat ketika menginstal Drupal (misalnya, user/1) akan diubah menjadi "admin" (atau isian apa pun yang Anda tentukan).
- Terakhir, hapus file resetpw.php dari direktori/folder root instalasi Drupal Anda.
- 87 views
Leave a Reply