我可以重命名wp-admin文件夹吗?

我知道我可以重命名它,但是除非得到代码的支持,否则很多事情都会中断。

如果我使用自定义文件夹名称,它将使其更加安全,隐蔽性和其他所有功能。

#1 楼

不幸的是,目前尚不可行,也似乎没有意愿将其视为修改,正如您在wp-hackers列表上的最新线程以及trac上的票证上所看到的那样。

我真的很想重新审视这个问题,我建议:


将您的案例提交给wp-hacker,但要事先警告您的用例会更好,而不是“通过默默无闻的安全性”将会被击落。
将您的论据以相同的告诫形式出现在追踪票中。当工作已经完成时,很难说“不”(但是,当然,他们确实比说“是”更愿意说“不”),因此要事先警告。)


评论


+1他们确实比说“是”更愿意说“不”,所以请提前警告:)

–西西尔
13年11月29日在5:18

#2 楼

不可以,您不能重命名文件夹。整个WordPress源代码中的路径都在多个位置进行了硬编码。

默默无闻的安全性并不是真正的安全性。

评论


充其量是不更改不良编程习惯(例如硬编码魔术数字或字符串)的懒惰借口。

– hakre
2011年1月10日12:05



@hakre +100 Btw,大多数人问如何隐藏“ wp- *”文件夹并不一定是在寻求安全性,他们实际上是在寻找默默无闻的东西。

– Victor Farazdagi
2011年7月5日在11:19

实际上,这并不是凭空掩饰的安全性。这是模糊的URL,是一种有效的安全技术。有关详细信息,请参见下面的答案。

– cmc
13年3月15日在11:47

Wordpress比gmail更令人尊敬。原因之一是,WordPress是开源的。每个人都知道代码。默默无闻的安全性不是真正的安全性吗?但是我们不是wordpress的编码者。它是开源的。在我看来,模糊确实有助于确保安全。为什么人们要使用加密密码呢?根据这种逻辑,就没有使用加密密码....因为数据库是可见的,所以黑客可以做任何事情...我的wordpress在10倍于我公司的wordpress的两倍几年...到目前为止,我的6-7个Gmail帐户在15年内都没有被黑客入侵...

–web2students.com
15年8月19日在11:34

所要求的不是“通过隐秘获得安全性”,而是安全性和隐蔽性。即使是世界上最安全的银行,也无法直接从街上到达银行。更改目录名称会使自动攻击更加困难。

– JoLoCo
17年6月16日在16:57

#3 楼

人们一直在问这个问题,但人们一直将其标记为重复。但是,为此选择的答案实际上并不是该问题的答案。

要重命名wordpress admin,您需要执行两个步骤。

在以下代码中,我我正在使用仪表板作为我的新wp-admin的名称。将下面代码中的仪表板更改为您想要命名新管理员的名称。

首先,您需要告诉wordpress您想要更改管理URL。

在第2558行,wp-includes / link-template.php是确定管理URL的代码。 。

使用admin_url过滤器,您可以通过以下功能成功更改管理员的网址:

function my_custom_admin_url($path) { 
    return str_replace('wp-admin', 'dashboard', $path); 
}
add_filter('admin_url', 'my_custom_admin_url');


您可以进行测试以查看您的新网址是通过执行以下操作:

function whats_my_admin_url() {
    $url = admin_url();
    echo '<pre><code>'; print_r( $url ); echo '</code></pre>';
    }
add_action( 'admin_notices', 'whats_my_admin_url' );


但是,如果您在单击admin时注意到并非所有功能都可以正常工作,并且某些链接可能会为您提供404找不到或类似的东西。

其次,在您的wordpress根目录中更改.htaccess,并在开头之前添加以下内容。

#CUSTOM ADMIN URL REWRITE
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^dashboard[^/]*$ dashboard/ [R=301,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^dashboard(.*)$ wp-admin? [QSA,L,NE]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/?$ / [NE,R=404,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/(.*)$ dashboard/ [QSA,R=301,L,NE]
</IfModule>
#CUSTOM ADMIN URL REWRITE


现在,我在编辑.htaccess方面不是专家,因此其中某些内容可能不是必需的。但是,我从未发现它不起作用。

这就是全部。创建一个文件并放入您的plugins文件夹或mu-plugins文件夹。 (请记住,将仪表板的每个实例都更改为您首选的管理url)

<?php
/**
 * Plugin Name: Change My Admin URL
 * Plugin URI: http://wordpress.stackexchange.com/questions/106/can-i-rename-the-wp-admin-folder
 * Description: Changes the admin url where wp-admin becomes dashboard (or whatever you change it to)
 * Version: 1.0
 * Author: Bryan Willis
 * Author URI: http://profiles.wordpress.org/codecandid
 * License: GPL2
 */

/* 

#CUSTOM ADMIN URL REWRITE FOR HTACCESS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^dashboard[^/]*$ dashboard/ [R=301,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^dashboard(.*)$ wp-admin? [QSA,L,NE]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/?$ / [NE,R=404,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/(.*)$ dashboard/ [QSA,R=301,L,NE]
</IfModule>
#CUSTOM ADMIN URL REWRITE

*/

function my_custom_admin_url($path) { 
    return str_replace('wp-admin', 'dashboard', $path); 
}
add_filter('admin_url', 'my_custom_admin_url');


问题?

我没有在一年使用这种方法。你可能会注意到,可湿性粉剂管理员仍会工作,这样的吮吸,但它更多的是预防比什么的。我有一些写得不好的插件,在试图阻止或重定向wp-admin的某些地方无法对wp-admin进行硬编码。我敢肯定有一种方法可以用htaccess做到这一点,但是我还没有成功解决。另外,还没有在多站点或类似的站点上对此进行过测试。

更新:替代方法

这非常相似,但是由于某种原因,我的上述答案并未在我尝试过的所有主机上起作用。

添加到.htaccess

RewriteRule ^admin/(.*) wp-admin/?%{QUERY_STRING} [L]

在mu-plugins文件夹中创建一个名为new-admin.php的文件,并将其添加到此处:

<?php
define('WP_ADMIN_DIR', 'admin');
defined('SITECOOKIEPATH') || define('SITECOOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('siteurl') . '/' ) );
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);

add_filter('site_url',  'wpadmin_filter', 10, 3);
 function wpadmin_filter( $url, $path, $orig_scheme ) {
  $old  = array( "/(wp-admin)/");
  $admin_dir = WP_ADMIN_DIR;
  $new  = array($admin_dir);
  return preg_replace( $old, $new, $url, 1);
}


注意:这种方法在某些主机上似乎更好,但是仍然存在无法将wp-admin链接重定向到新的管理url的问题。这是我在下面尝试的一种方法。尽管下面的方法不起作用,但我认为它是在正确的轨道上。我不确定要使用哪个钩子。 htaccess可能是一个更好的选择,但是当我尝试这种方式时,我一直在获取重定向循环。


评论


这里有类似的方法写入类:wordpress.stackexchange.com/a/7832/76440

– majick
16年5月17日在5:08

很高兴您指出@makick的答案!这是一个很好的答案,实际上是我从中获得一些想法的地方,但是在很多情况下,这似乎对我没有用,这正是我所做的更改起作用的地方。我仍在尝试找出的一件事是如何重定向在URL中手动键入的所有wp-admin链接。我似乎无法弄清楚那个。如果有机会,请使用site_url过滤器而不是admin_url尝试我的更新答案。看来效果很好。

–布莱恩·威利斯(Bryan Willis)
16年5月27日在16:34



#4 楼

WordPress正式支持的一种方法是将WordPress安装文件移动到子目录中,同时将网站保留在根目录中,如下所示:

站点URL:http://my-blog.com

管理员URL:http://my-blog.com/7nxnkkugrdzm/wp-admin

虽然这不能使您完全自由地更改管理员url,但这意味着您可以在其中添加任何喜欢的前缀。从安全的角度来看,这同样好。它还具有将所有WordPress安装文件移动到用户未知位置的好处,因此它应该是任何wordpress强化策略的一部分。

来自WordPress Codex:为WordPress提供自己的目录

另外,请注意,尽管此安全方案称为“模糊URL”,但与通过模糊进行的安全性不同。晦涩的URL是一种完全有效的安全方案,它与密码一样好,而晦涩的安全性取决于使用未经验证的秘密程序。像7nxnkkugrdzm,而不是happy-snappy-admin。另外,请确保您的用户知道管理员网址是秘密。

#5 楼

实际上,这里有一个很好的教程:

如何从源代码镜像中隐藏WordPress信息
包括如何重命名wp-content,重命名wp-admin以及删除生成器标记来自WordPress。
本教程将在源代码中更改明显的证据或指示,从而有效地从您的站点中删除WordPress信息。

它说明了如何更改文件夹名称, wp-admin登录网址,并确保login.php重定向到主站点,以便人们可以直接访问该站点。

#6 楼

如果要阻止订户级用户查看wp-admin目录,则可以在其自己的目录中创建登录/注册和配置文件/编辑页面的独立版本。然后,您可以通过htaccess或IP限制来保护您的admin文件夹。 (尽管这样做,您应该为admin-ajax文件设置一个例外,因为某些插件使用它来添加um AJAX功能)。想要(实际上并不能做很多,但是通常会使客户和经理感觉更好),并且通过限制对管理员的访问来增加一些真正的安全性。另外,说实话,仅显示“ / login”的URL看起来比“ wp-login.php”好很多。但这是一个不错的基本增强。

#7 楼

锁定管理控制面板的一种方法是利用.htaccess规则。只需将.htaccess文件添加到wp-admin目录的根目录即可。添加此文件后,只需添加以下规则以拒绝所有IP地址并仅允许您的IP:

http://wp.tutsplus.com/tutorials/10-steps-to-securing- your-wordpress-installation /

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
whitelist address
allow from <IP ADDRESS HERE>
</LIMIT>


#8 楼

如果要重命名wp-admin,目的是为WordPress安装增加额外的安全性,您还可以尝试使用Roots / Bedrock WordPress Boilerplate。它可以帮助隔离Web根目录,以限制对非Web文件的访问。通过将其放在自己的子目录中(如将wp-content /重命名为app /)以及以下附加功能,它还可以帮助组织/保护整个WordPress核心: Composer
使用特定于环境的文件轻松进行WordPress配置
使用Dotenv的环境变量
用于mu-plugins的自动加载器(使用常规插件作为mu-plugins)
增强的安全性(独立的Web根和安全性) wp-password-bcrypt的密码)

您还可以检查其GitHub Repo以获取更详细的用法:

#9 楼

看看http://wordpress.org/extend/plugins/stealth-login/可能对您有所帮助。

评论


我尝试该插件时遇到问题。而且它目前似乎尚未维护或与WP 3.x兼容。

–稀有
2010-11-14 21:41

啊...很糟糕,没有检查,我前一段时间已将其卸载。但是,嘿...也许有人可以在实际需要时进行修复。

– edelwater
2010年11月15日,0:58

或者,请参阅wordpress.stackexchange.com/questions/4037/…

– hakre
2011年1月10日,12:07

#10 楼

不,不可能用任何短代码或htaccess hack重命名wp-admin文件夹。使用)标记“ wp-admin,wp-content ... etc”,然后从文件中删除“ wp-”。

之后,您将可以安装它,但:
必须对要安装的插件执行相同的操作,
必须通过清除新版本中的“ wp-”标签来手动更新内核。

在我不建议您采取所有类似的方式,
保留原样,并尝试实现“用户登录/注册/配置文件”页面,以便为您的用户/客户提供更好的体验。


来自Cozmolabs的Cristian写了一个很好的教程。您可以
稍​​微编辑一下代码,使其在任何WordPress主题中运行。


您还可以从前端添加发布表单,以便管理员和具有写文章能力的用户可以从前端进行操作。


在这里您可以看到有关如何创建“前端发布”页面的示例和代码。
/>前端帖子提交


此外,您还可以在这里查看一些不错的插件,它们具有相同的功能,但功能更多。

#11 楼

在IFRAME中使用WP-ADMIN有什么好处?

在wp仪表板中创建一个名为“ Admin”的新页面。例如:yourdomain / admin /

您可以使用header.phppage.php和/或footer.php做出案例声明,以禁用模板上不需要的内容,方法是:

<?php
if(!is_page('admin')): //if not the admin page.

//wrap code not needed or wanted.

else: ?>

<style type="text/css">
    .responsive-iframe {
    position: relative;
    padding-bottom: 56.25%; /*16:9*/
    height: 0;
    overflow: hidden;

    iframe {
        position: absolute;
        top:0;
        left: 0;
        width: 100%; //or 100vw
        height: 100%; //or 100vh
    }
}   
</style>

<div class="responsive-iframe">
<iframe seamless="seamless" scrolling="yes" src="http://yourdomain/wp-admin/" frameborder="0" allowfullscreen></iframe>
</div>

<?php 
endif;


这不是很漂亮,但是至少可以在某种程度上隐藏url中的wp-admin。
另一种方法是在启用掩码url的情况下使用域转发。

#12 楼

我本人删除wp-login.php文件,并在我要登录之前按ftp上传它,然后在以后再次删除它,直到下次。但是我还是会说

Wordfence插件会很有帮助阻止人类黑客的企图。为管理员帐户使用一个非常长而复杂的用户名(黑客和僵尸程序不假定人类使用长用户名,仅使用密码),即使您都不记得了,并且使用您使用的电子邮件地址登录也是一个corker 。
最好删除comments.php文件的内容,最好不要在您的网站上进行评论或注册,最好仅对管理员(如果需要您的作者和编辑者)进行访问。删除comments.php内容可防止注入恶意软件和黑客。
在两个单词之间添加一个空格作为您的登录名,因为大多数黑客都不知道您可以使用一个空白空间来创建用户名,而且通常即使他们猜出您的用户名也要使用下划线(使用社会工程学的黑客)。事实证明,复杂的长密码不比8字符/整数密码强,以便您学习。
最后但并非最不重要的是,不仅要保护login.php,(顺便说一句)永远不要使用用户名“ [login]”),而是xml rpc文件,这是黑客喜欢用来尝试登录的其他文件。通常,这种攻击是低级的低级攻击,对使用AI来完成工作的真正黑客知识知之甚少,而只是在尝试自己的运气。但是比后悔更安全。此外,WP All in an迁移插件允许您下载具有数据库和配置的整个站点,并在遭到黑客入侵和站点删除的情况下再次上传。上床睡觉之前进行每日备份将确保您的网站始终保持与上床睡觉之前的状态相同。离线备份到硬盘(外部),您将永远安全。
哦,尽量减少插件的使用量,因为开发人员经常让它们腐烂而不进行更新,并且如果您的博客使用了该插件(例如youtube播放列表插件)tp帖子,则删除过期的插件会产生很多帖子由于缺少内容而变得毫无意义(总是提前考虑)。但是,请务必在一个迁移工具中使用akismet,freewordfence和wp等必要的插件来备份网站文件,内容和数据库。许多插件也有漏洞,服务器的快速嗅探将向黑客显示所有文件夹,他将知道您拥有该插件,并通过它进行攻击。也不要使用Discus或其他第三方评论表格,因为通过第四方创建(目前使用应用程序中的位置标记对youtube进行了黑客入侵)的数据有很多被窃取和泄露,这是无济于事的。最好有一个Facebook页面并让人们在那里评论,但不要插入窗口小部件或与其他域之间的链接或它们的API太多的代码,因为通信和共享的数据容易被专业黑客拦截。因此,我的wordpress网站上没有评论或共享按钮。 (我的网站仍然不错,并且生活得很好,无需评论)。例如,如果此问题是以youtube视频的形式出现的,那么每个人都将在stackexchange上放下wordpress(不是我建议这样做,因为堆栈交换太棒了!)并评论其YouTube频道insytead。更安全,更安全。因此,请创建一个YT频道和FB页面,并使用它们来让人们“注册并评论”,并在没有登录选项的情况下将wordpress网站保持为准系统。


评论


这个答案似乎是一种意见。您是否有任何研究可以证实这种方法?有任何支持您的观点和陈述的研究吗?

– Howdy_McGee♦
10月31日22:07