本文作者:花雾影

使用PHP文件重置管理员密码(Drupal 8)

使用PHP文件重置管理员密码(Drupal 8)摘要: 某些托管环境不允许SSH访问安装了Drupal站点的Web服务器,这使得无法通过命令行恢复Drupal 8管理员帐户密码。当基于命令行的密码恢复技术不起作用时,应采用以下 ***...

77094b36acaf2edd7e44f09a831001e939019308.jpg

某些托管环境不允许SSH访问安装了drupal站点的Web服务器,这使得无法通过命令行恢复Drupal 8管理员帐户密码。当基于命令行的密码恢复技术不起作用时,应采用以下 *** 作为“最后的选择”。

下述密码重置 *** 使用必须上传到Web服务器的PHP脚本来重置管理员密码。若要成功执行此 *** ,必须具有将PHP文件上传到托管站点的服务器的功能

在后台,PHP脚本执行完整的Drupal引导程序,以获得对生成管理密码的必要功能的访问,然后使用通过Web浏览器执行脚本时通过URL指定的新密码来更新数据。 。

注意:重设密码后,在服务器上保留此密码重设脚本是一个非常关键的安全漏洞,任何人都可以重设管理员密码。仔细使用此脚本,并在使用完脚本后始终将其删除。

首先,创建一个具有随机名称的文件(例如gh34tu9.php)。

将以下内容复制并粘贴到文件中,然后保存文件。

<?phpuse 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 "Done. Please delete this file as soon as possible";

将文件上传到Drupal安装目录的根目录(即存在index.php,update.php,robots.txt和其他文件和目录的位置)。

通过使用以下URL模式 在Web浏览器中请求文件来执行脚本:在上述URL中, -替换为您的实际域名, -替换为您在上面的之一步中指定的实际文件名, -替换为所需的新密码。 注意:强烈建议您选择一个密码,该密码包含大小写字母和数字,并且长度至少为12位数字。
http://example.com/gh34tu9.php?pass=mypassword

example.com
gh34tu9.php
mypassword

如果脚本成功执行,您将在Web浏览器中看到文本“完成”。安装Drupal时创建的管理帐户的密码(即user / 1)将更改为“ mypassword”(或您指定的任何值)。

最后,从Drupal安装根目录中删除该文件。

重置管理员帐户用户名

如果您不记得(或根本不知道)管理员帐户的用户名,请在上面的脚本中将更改//    'name' => 'admin',为,并且用户名也将更改为“ admin”。您也可以用相同的方式来重置管理员的电子邮件地址, *** 是“取消注释”(删除)上面脚本中电子邮件地址所在的行。    'name' => 'admin',//

为了您的方便,上面脚本的源文件附在ZIP文件内的下方。您可以下载该zip文件,然后将其解压缩,然后将其上传到服务器。确保将文件名更改为原始名称以外的其他名称。最后,不要忘记在更改密码后立即删除文件。



文件下载
资源名称:重置密码文件文件大小:814b解压密码:shuipoliangshan


文章投稿或转载声明

来源:Drupal版权归原作者所有,转载请保留出处。本站文章发布于 05-27
温馨提示:文章内容系作者个人观点,不代表水泊网对其观点赞同或支持。

赞(

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,8703人围观)参与讨论

还没有评论,来说两句吧...