专栏首页许都博客隐藏 WordPress 系统,提高 WordPress 站点安全性

隐藏 WordPress 系统,提高 WordPress 站点安全性

出于保密和安全方面的原因,一些用户会考虑把网站所用的后台隐藏起来,这中需求有一个收费插件叫「hide my wp」,如果你没有办法购买,或者不想使用插件,这篇文章就是为你准备的。本文中的方法适合有一定动手能力的用户使用。下面我们就来看看怎么一步一步地把 WordPress 隐藏掉。

URL 重定向

WordPress 的目录结构是最具特色的,如果不经过处理,别人通过代码一眼就能看出来你的网站是用的 WordPress,我们首先需要做的就是修改掉 WordPress 的目录结构。

/**
 * URL 重定向
 *
 * 重定向:
 *  /wp-content/themes/themename/assets/css/ 到/assets/css/
 *  /wp-content/themes/themename/assets/js/ 到/assets/js/
 *  /wp-content/themes/themename/assets/img/ 到/assets/img/
 *  /wp-content/plugins/ to /plugins/
 */
function nowp_add_rewrites($content) {
    global $wp_rewrite;
    $nowp_new_non_wp_rules = array(
        'assets/(.*)' => THEME_PATH . '/assets/$1',
        'plugins/(.*)'   => RELATIVE_PLUGIN_PATH . '/$1'
    );
 wp_rewrite->non_wp_rules = array_merge(
    return $content;
}
 
function nowp_clean_urls($content) {
    if (strpos($content, RELATIVE_PLUGIN_PATH) > 0) {
        return str_replace('/' . RELATIVE_PLUGIN_PATH,  '/plugins', $content);
    } else {
        return str_replace('/' . THEME_PATH, '', $content);
    }
}
 
//不重写多站点和自主体
if ( !is_multisite() && !is_child_theme() ) {
    add_action('generate_rewrite_rules', 'nowp_add_rewrites');
    if ( !is_admin() ) {
        $tags = array(
            'plugins_url',
            'bloginfo',
            'stylesheet_directory_uri',
            'template_directory_uri',
            'script_loader_src',
            'style_loader_src'
        );
        add_filters($tags, 'nowp_clean_urls');
    }
}

以上代码假设在你的主题中有/assets/文件夹,如果你使用的是 Apache 服务器,WordPress 会自动为你重建好重写需要的.htacces文件,如果你使用的是 Nginx,还需要手动添加重写规则到你的主机配置文件中。

location ~ ^/assets/(img|js|css|fonts)/(.*)$ {
  try_files uri uri/ /wp-content/themes/YOURTHEME/1/2;
}
location ~ ^/plugins/(.*)$ {
  try_files uri uri/ /wp-content/plugins/
}

上面的规则硬编码了 /wp-content/ 目录,如果你在主题中修改了 WP_CONTENT_URL 或 WP_CONTENT_DIR 常量,可能会出现冲突,确保以上代码中的 wp-content 目录是正确的就可以了。

使用相对链接

所有的地方都使用绝对链接也是 WordPress 的一大特点,其实这是没有必要的,我们通过下面的代码可以吧绝对链接修改成为相对链接。

/**
 * 修改绝对链接为相对链接
 *
 * 提取自Roots主题
 */
function nowp_root_relative_url($input) {
    preg_match('|https?://([^/]+)(/.*)|i', input, matches);
 
    if (isset(matches[1]) && isset(matches[1] === _SERVER['SERVER_NAME']) {
        return wp_make_link_relative($input);
    } else {
        return $input;
    }
}
function nowp_enable_root_relative_urls() {
    return !( is_admin() || in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php')) );
}
$root_rel_filters = array(
    'bloginfo_url',
    'the_permalink',
    'wp_list_pages',
    'wp_list_categories',
    'the_content_more_link',
    'the_tags',
    'get_pagenum_link',
    'get_comment_link',
    'month_link',
    'day_link',
    'year_link',
    'tag_link',
    'the_author_posts_link',
    'script_loader_src',
    'style_loader_src'
);
add_filters($root_rel_filters, 'nowp_root_relative_url');

清理 HTML Head 中没用的代码

WordPress 在 <head> 中添加了很多我们平时用不到的代码,这不但增加了垃圾代码,对网站后台系统也暴露得很充分,好在我们可以很容易的清理掉这些代码,添加以上代码到主题的 functions.php 文件中即可。

/**
 * 清理wp_head()
 *
 * 移除不需要的 <link>'s
 * Remove inline CSS used by Recent Comments widget
 * Remove inline CSS used by posts with galleries
 * Remove self-closing tag and change ''s to "'s on rel_canonical()
 */
function nowp_head_cleanup() {
    // Remove junk from head
    remove_action('wp_head', 'rsd_link');
    remove_action('wp_head', 'wp_generator');
    remove_action('wp_head', 'feed_links', 2);
    remove_action('wp_head', 'index_rel_link');
    remove_action('wp_head', 'wlwmanifest_link');
    remove_action('wp_head', 'feed_links_extra', 3);
    remove_action('wp_head', 'start_post_rel_link', 10, 0);
    remove_action('wp_head', 'parent_post_rel_link', 10, 0);
    remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0);
    remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
    remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
    remove_action('wp_head', 'feed_links', 2);
    remove_action('wp_head', 'feed_links_extra', 3);
 
    global $wp_widget_factory;
    remove_action('wp_head', array($wp_widget_factory->widgets['WP_Widget_Recent_Comments'], 'recent_comments_style'));
 
    if (!class_exists('WPSEO_Frontend')) {
        remove_action('wp_head', 'rel_canonical');
        add_action('wp_head', 'nowp_rel_canonical');
    }
}
function nowp_rel_canonical() {
    global $wp_the_query;
 
    if (!is_singular()) {
        return;
    }
 
    if (!id = wp_the_query->get_queried_object_id()) {
        return;
    }
 
 link = get_permalink(id);
    echo "\t<link rel=\"canonical\" href=\"$link\">\n";
}
add_action('init', 'nowp_head_cleanup');
 
/**
 * Remove the WordPress version
 */
add_filter('the_generator', '__return_false');
 
/**
 * Clean up language_attributes() used in <html> tag
 *
 * Change lang="en-US" to lang="en"
 * Remove dir="ltr"
 */
function nowp_language_attributes() {
    $attributes = array();
    $output = '';
 
    if (function_exists('is_rtl')) {
        if (is_rtl() == 'rtl') {
            $attributes[] = 'dir="rtl"';
        }
    }
 
    $lang = get_bloginfo('language');
 
    if (lang && 
 attributes[] = "lang=\"
    } else {
        $attributes[] = 'lang="en"';
    }
 
 output = implode(' ', attributes);
 output = apply_filters('nowp_language_attributes', output);
 
    return $output;
}
add_filter('language_attributes', 'nowp_language_attributes');

大功告成

以上操作可以隐藏绝大多数的 WordPress 信息,大大提高 WordPress 的安全性,虽然高手还能通过一些手段看得出来,但是比什么都不做还是要好多了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 保持 WordPress 安全性有效措施汇总

    有关 WordPress 安全性的文章其实已经有很多了,但是明月感觉随着技术的迭代发展, WordPress 安全也在不断的面临考验,好在 WordPress ...

    明月云服务
  • WordPress 站点如何选择插件才是安全的?

    在『又一次真实案例证明了滥用 WordPress 插件的危害』文章发布后,不少站长都很好奇这篇文章说的是哪个插件?其实很多时候说 WordPress 插件的安全...

    明月云服务
  • wordpress站点防黑宝典,做好这几项工作确保网站万无一失

    wordpress站点很多人任务很不安全,非常容易被黑,常常有用户说自己的站点不安全被人挂马了,跳转到各种垃圾网站的情况,其实被挂马了清除病毒不是一件非常容易的...

    wordpress建站吧
  • 5板斧快速提高wordpress网站安全性,草根站长必备技能

    5板斧快速提高wordpress网站安全性,草根站长必备技能,很多草根站长们在接触网站的时候基本都是使用的wordpress建站的,wordpress建站的优势...

    wordpress建站吧
  • 十条关于 WordPress 安全性的小贴士

    WordPress 本质上并没大家认为的那么危险,而且开发者也在努力工作,以确保危险漏洞能被快速修复。但不幸的是,WordPress 的成功使其成为众矢之的:如...

    Debian中国
  • Web应用信息隐藏

    信息收集的前期工作,决定后期渗透工作的难易程度,而自己搭建网站时则需要隐藏自己服务器的信息,增加网站的安全性。

    7089bAt@PowerLi
  • WordPress 面对恶意请求、恶意登录的基本安全防御措施

    今天明月给大家分享一下 WordPress 站点的基本安全防御措施,这些都是明月多年使用 WordPress 的经验总结,至少都是“实测有效”的,甚至不少还是明...

    明月云服务
  • 网站建设CMS系统之WordPress和PageAdmin评测

    现在很多做网站的,无论个人,企业都很少会从后台到前台全新去独立开发,都是借助现有的cms系统来搭建,国内做网站用得最多的无外乎wordpress和pageadm...

    用户4831957
  • WordPress 恶意代码的分析和排查方法

    自【网站安全的「灯下黑」隐患:账号安全】一文发表后,明月收到了很多站长们有关 WordPress 站点安全的问题咨询,明月总结分析了一下几乎 90%以上都是“恶...

    明月登楼
  • WordPress 4.9.8版本正式发布,修复了46个问题

    从 WordPress 4.9.8 发布文章:此维护版本修复了 46 个错误(详情参见发行注记),增强功能和祝福任务,包括更新 Twenty Seventeen...

    明月云服务
  • 盘点wordpress有哪些经典的插件值得推荐?

    wordpress总的原则是不不用插件就不要使用插件,能少用插件就少用插件的基本原则,因为各种主题各种插件和功能的附加只会让wordpress显得非常的臃肿庞大...

    wordpress建站吧
  • 如何在Ubuntu 14.04上使用双因素身份验证保护您的WordPress帐户登录

    安全性是运行WordPress网站最重要的方面之一。我们中的许多人都倾向于认为黑客不会打扰我们的网站,但实际上,未经授权的登录尝试是在公共互联网上运行服务器的常...

    彼岸轮回
  • WordPress建站不安全易中毒?那是因为你没做好这几件事情

    很多人选择使用wordpress来尝试建站不管是个人博客网站,亦或者是企业官网,外贸网站,或者是其他等等,很多人在用了一段时间之后发现网站出问题,感染病毒,被恶...

    wordpress建站吧
  • 网站被黑该怎么修复网站漏洞

    近日wordpress被爆出高危的网站漏洞,该漏洞可以伪造代码进行远程代码执行,获取管理员的session以及获取cookies值,漏洞的产生是在于wordpr...

    技术分享达人
  • wordpress安全插件iThemes Security使用经验分享

    wordpress安全插件iThemes Security,之前我用过一个 all in XX的插件功能似乎也是比较强大的,但是偶尔总是把自己也给锁定导致无法登...

    wordpress建站吧
  • 如何在 wordpress 文章页和单页面隐藏作者/发布者

    魏艾斯博客www.vpsss.net
  • GoBrut破解型僵尸网络悄然再度来袭

    Go语言因为跨平台且易上手,越来越受到攻击者的青睐。2019年年初[1],一个由Go语言编写的新型恶意软件家族问世,称为GoBrut(又名StealthWork...

    绿盟科技研究通讯
  • WordPress建站不安全易中毒?那是因为你没做好这几件事情

    很多人选择使用wordpress来尝试建站不管是个人博客网站,亦或者是企业官网,外贸网站,或者是其他等等,很多人在用了一段时间之后发现网站出问题,感染病毒,被恶...

    wordpress建站吧
  • 针对WordPress的攻击调查

    WordPress是一个著名的开源内容管理系统(CMS),用于创建网站和个人博客,据估计,目前35%的网站都在使用CMS。

    FB客服

扫码关注云+社区

领取腾讯云代金券