WordPress建站的安全设定非常重要,因为程序被大家熟知,很容易因为默认的设置导致网站被攻击被黑。所以今天飞鹿日志大家不用插件如何全面的设定wordpress,让你的网站安全等级再提高。

  1. 建立数据库时,更改掉默认的数据库前缀wp。
    原因:默认情况下, WordPress数据库中的数据表都是使用 wp_ 作为前缀的。如果你的数据库使用默认的前缀,那么黑客就很容易猜到你的数据表名,从而攻破你的网站。
    解决方法:在建立网站时将wp的前缀直接修改为其他前缀即可。例如:fd_
  2. 建立管理员用户时,使用邮箱账号,切勿使用admin默认账户。
    原因:
    WordPress系统默认安装是采用admin账号(后面的版本允许使用者自行选择网站管理员账号)黑客轻易的就可以猜到你账号,接下来猜出密码很快。
    解决方法:将admin账户设置为邮箱账号等类型的账号。
  3. 更改网站后台默认登陆地址wp-login.php和wp-admin。
    原因:
    默认的登陆地址很多人都知道,如果不修改,网站将会被一直搜索攻击登陆,导致网站被爆破影响网站运行。
    解决方法:
    隐藏内容
    本内容需权限查看
    • 普通用户: 不可购买
    • VIP会员: 5金币5折
    • 永久会员: 免费
  4. 禁用wordpress自带的文件编辑功能。
    原因:
    WordPress后台的主题默认可以在后台直接编辑,黑客入侵乱改,也可能自己改错造成网站出错。
    解决方法:
    隐藏内容
    本内容需权限查看
    • 普通用户: 不可购买
    • VIP会员: 5金币5折
    • 永久会员: 免费
  5. 设定robots参数,禁止搜索引擎爬取wp-config.php,wp-admin,login.php等相关安全的数据。
    原因:
    如果不做好robots参数设置,搜索引擎会收录你所有的网站目录。将会导致你的网站信息丢失,攻击者将会很轻易从搜索引擎搜索到你网站的配置,从而得到你网站的权限。
    解决方法:
    将robots中增加一行Disallow: /wp-*
  6. 对特定的目录禁用php文件执行。(例如:/wp-content/uploads/)
    原因:
    部分目录允许php文件运行,会导致容易被植入木马程序,网站容易受后门访问文件的侵害。
    解决方法:
    隐藏内容
    本内容需权限查看
    • 普通用户: 不可购买
    • VIP会员: 5金币5折
    • 永久会员: 免费
  7. 禁用目录索引和浏览。
    原因:
    网站没有开启禁止目录索引功能,恶意人士将网站内容全部下载导致网站数据丢失。黑客可以使用目录浏览来查看是否有任何已知漏洞的文件,这样他们可以利用这些文件来获取访问权限。目录浏览还可以被其他人用来查看你的文件,复制图片,查看你的目录结构以及其他信息。
    解决方法:
    隐藏内容
    本内容需权限查看
    • 普通用户: 不可购买
    • VIP会员: 5金币5折
    • 永久会员: 免费
  8. 禁用WordPress的XML-RPC。
    原因:
    从WordPress 3.5开始,XML-RPC是默认启用的,因为它可以帮你将WordPress网站连接到网络应用或者手机应用。然而由于其强大的特性,XML-RPC会明显的提升暴力攻击的成功率。黑客可以使用 system.multicall 函数在20或50个请求中就进行上千次的密码尝试。
    解决方法:
    隐藏内容
    本内容需权限查看
    • 普通用户: 不可购买
    • VIP会员: 5金币5折
    • 永久会员: 免费
  9. 设定管理员密码必须要含有大写字母,小写字母,数字,特殊符号,且密码位数不低于8位。
    原因:
    普通简单的密码容易被破解,网站的安全就无法保证。
    解决方法:密码设定示例:Fdeer@123?
  10. 设置普通用户禁止访问后台。
    原因:
    普通用户登录后台,隐患很大,只要注册一个账号就可以得到后台登陆地址,安全性大大降低。WordPress的一些前端化插件,把Wordpress后台的一些功能移到前台了,这时候需要禁止普通用户访问后台,或者当普通用户登录时,自动跳转到插件生成的或我们自定义的用户中心。如果是管理员登陆,还是跳转到后台。
    解决方法:1.在主题的functions.php最后加入以下代码:


    function wizhi_restrict_admin() {
    if ( ! current_user_can( ‘manage_options’ ) && $_SERVER[‘PHP_SELF’] != ‘/wp-admin/admin-ajax.php’ ) { //判断是否为管理员
    wp_redirect( ‘/uc/’ ); //跳转到/uc/界面
    }
    }
    add_action( ‘admin_init’, ‘wizhi_restrict_admin’, 1 );


    2.将uc更换为前台用户中心的路径。

  11. 更改wordpress目录结构,让别人猜不出来你的后台系统。×
    原因:WordPress 的目录结构是最具特色的,如果不经过处理,别人通过代码一眼就能看出来你的网站是用的 WordPress,容易被攻击。
    解决方法:1.在主题的functions.php中输入以下代码:


    /*** 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’);
    }
    }


    2.以上代码假设在你的主题中有/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;
    }


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

  12. 限制上传文件大小。
    原因:
    黑客透过Dos攻击,利用传输大文件来冲爆你的流量,导致网站错误。所以可以透过限制单档大小来阻绝这样的一个状况发生。
    解决方法:
    隐藏内容
    本内容需权限查看
    • 普通用户: 不可购买
    • VIP会员: 5金币5折
    • 永久会员: 免费
  13. 限制.htaccess 访问权限。
    原因:
    如果.htaccess可以被访问,那么你网站的所有配置的参数都会被人看到,那么网站的安全可想而知。
    解决方法:
    隐藏内容
    本内容需权限查看
    • 普通用户: 不可购买
    • VIP会员: 5金币5折
    • 永久会员: 免费
  14. 及时删除install.php文件。
    原因:install.php是默认的安装文件,如果安装完不及时删除,别有用心者可以经过一些方法将你的网站进行重装。那么你的数据就全部丢失了。
    解决方法:用ftp软件删除/wp-admin/install.php和install-helper.php。
  15. 保持wordpress为最新版本。
    原因:
    WordPress是一款开源的软件,全球使用人较多,被攻击的方法和次数也多,如果有漏洞不更新影响较大。所以要及时更新网站的版本避免漏洞被利用,导致网站被攻击受损。
    解决方法:自动更新或手动更新wordpress版本为最新。
  16. 定期备份数据库和网站的文件。
    原因:
    网站在公网上运行,总会遇到各种问题,安全做的再好,也有被未知漏洞或者错误操作,又或者火灾等不可抗因素导致的问题。所以定期备份数据库和文件是很好的减少损失的好方法。
    解决方法:
    将数据库和网站文件下载到本地进行保存。
  17. 限制存取wp-includes目录。
    原因:“wp-includes”这个目录是系统的一些核心目录,还有”/wp-admin/wp-includes”和”/wp-includes”在我们的网站页面上并没有哪个页面有URL会指向这些地方(通常这个目录里的文件只能被被管理者修改或者代码里调用的)。
    解决方法:
    隐藏内容
    本内容需权限查看
    • 普通用户: 不可购买
    • VIP会员: 5金币5折
    • 永久会员: 免费
  18. 合理设置目录权限
    默认权限 (umask 022)

    644 -rw-r–r– /home/user/wp-config.php
    644 -rw-r–r– /home/user/cgi-bin/.htaccess
    644 -rw-r–r– /home/user/cgi-bin/php.ini
    755 -rwxr-xr-x /home/user/cgi-bin/php.cgi
    755 -rwxr-xr-x /home/user/cgi-bin/php5.cgi

    安全的权限:
    600 -rw-r–r– /home/user/wp-config.php
    604 -rw—-r– /home/user/cgi-bin/.htaccess
    600 -rw——- /home/user/cgi-bin/php.ini
    711 -rwx–x–x /home/user/cgi-bin/php.cgi
    100 —x—— /home/user/cgi-bin/php5.cgi

    .htaccess权限
    644 > 604 – 删除了允许.htaccess文件的组所有者读取权限的位。 .htaccess文件通常需要644,并且建议使用644。

    php.ini权限
    644 > 600 – 预先允许所有的组和所有的用户都可以访问这一服务器上的php.ini文件,哪怕这样的请求来自于网站。比较棘手的是php.ini只能被php.cgi使用,我们只需要确认php.cgi进程是否已经在访问了。php.cgi在两个文件属于同一用户的时候会执行,也就意味着只有一个用户可以访问这一文件。

    php.cgi权限
    755 > 711 这一文件是一个编译好的php-cgi二进制用来替换mod_php或者主机提供商默认的php目录。 默认的权限是755。

    php5.cgi权限
    755 > 100 – 由于安装的用户就是运行php cgi进程的所有者,其他的用户或者组不需要访问,所以我们禁止了所有的除了执行的访问。 这非常有趣,你可以尝试读取文件,写文件等操作, 不过这都需要执行php脚本。而作为这一文件的所有者你可以随时改变它的权限。

  19. 隐藏WordPress版本
    原因:
    如果你的网站信息中有WordPress版本号,攻击者就会使用针对性的工具和方法对你的网站进行爆破。所以一定要去掉wordpress版本号。
    解决方法:
    将以下代码加入到主题的functions.php中。
    隐藏内容
    本内容需权限查看
    • 普通用户: 不可购买
    • VIP会员: 5金币5折
    • 永久会员: 免费
  20. 防垃圾留言攻击。
    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} POST
    RewriteCond %{REQUEST_URI} .wp-comments-post.php*
    RewriteCond %{HTTP_REFERER} !.*fdeer.com.* [OR]
    RewriteCond %{HTTP_USER_AGENT} ^$
    RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
  21. 禁止包含 SQL 查询的请求。
    原因:攻击者通过使用SQL命令进行破解网站,会更容易让你的网站被爆破。
    解决方法:
    隐藏内容
    本内容需权限查看
    • 普通用户: 不可购买
    • VIP会员: 5金币5折
    • 永久会员: 免费
  22. 取消WordPress评论框下的”HTML 标签和属性。
    原因:WordPress评论框里面可以添加一些html标签,但这经常会导致大量的垃圾链接,并且可能会引发安全隐患。
    解决方法:将下列代码加入到模板的 functions.php 文件来取消该功能。


    add_filter( ‘pre_comment_content’, ‘wp_specialchars’ );


声明:
本站所有文章,如无特殊说明或标注,均为本站原创发布。
任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。