当前日期时间
当前时间:
网站标志
Logo
全站搜索
广告位
phpweb图片广告
广告位
phpweb图片广告
自定内容

phpweb已经是国内最强的的开源电子商务系统了,但并非完美,因为任何...

互联网3年一轮回,京东凡客等电商品牌在三年之前也不过是小打小闹,而如...

电商已经成为趋势,传统行业的竞争已经逐渐演变到网络上,也有不少用Weboss...

phpweb系统是固定的模式,适用于大部分行业与需求。但有一些行业还是有自己...

当前位置
文章正文

通过隐藏WordPress信息提高网站的安全性

发表:管理员  发表时间:2021-07-12 09:49:10   阅读:(977)次  

出于保密和安全方面的考虑,一些站长会考虑把网站所用的后台隐藏起来,WordPress系统中有一个收费插件叫「hide my wp」,如果你不想购买或者不想使用插件,那么这篇文章就是为你准备的。本篇文章中的方法适合有一定动手能力的朋友参考。下面草莓互联站长就来教各位一步一步地把WordPress的信息隐藏掉。

1.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($wp_rewrite->non_wp_rules, $nowp_new_non_wp_rules);

    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/$1;

}

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

2.使用相对链接

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

/**

 * 修改绝对链接为相对链接

 *

 * 提取自Roots主题

 */

function nowp_root_relative_url($input) {

    preg_match('|https?://([^/]+)(/.*)|i', $input, $matches);

 

    if (isset($matches[1]) && isset($matches[2]) && $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');

3.清理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 " <link rel="canonical" href="$link"> ";

}

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 to

 * 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 && $lang !== 'en-US') {

        $attributes[] = "lang="$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系统的安全性,虽然高手还能通过一些手段看得出来,但是比什么都不做还是要好多了。

 

假如我们资讯/文章对您有所帮助,您可以通过扫描捐赠二维码支持一下我们~

感谢您对我们的支持,您的小小支持让我们有信心走得更远!

脚注信息
© 2005-2015 草莓互联(100cm.cn) 广州同福信息科技有限公司 版权所有,并保留所有权利。

广州市东莞庄一横路116号 粤ICP备11046216号

经营性网站备案信息 广州网络警察报警平台 不良信息举报中心  百度信誉档案 广州工商红盾网 可信网站认证