加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

wordpress网站终极防黑手册,全方位保护网站安全(二)

发布时间:2016-12-19 16:23:29 所属栏目:教程 来源:v7v3.com
导读:接着上一篇文章《wordpress网站终极防黑手册,全方位保护网站安全(一)》继续谈谈wordpress系统的一些已知安全隐患。老鸟级别的wordpress站长一定知道不管在任何版本的wordpress程序上作者存档页面的固定链接都是不能修改的,而且一旦站长开启伪静态后,只

  接着上一篇文章《wordpress网站终极防黑手册,全方位保护网站安全(一)》继续谈谈wordpress系统的一些已知安全隐患。老鸟级别的wordpress站长一定知道不管在任何版本的wordpress程序上作者存档页面的固定链接都是不能修改的,而且一旦站长开启伪静态后,只要直接访问

  abc.com/?author=$id

  (PS:id为用户的数字id)

  则wordpress会直接转跳到

  abc.com/author/用户帐号/

  这种形式的链接,这将直接暴露出网站用户的登录帐号,存在着一定的安全隐患。(PS:管理员的ID都是1-5这五个数字,直接一试管理员帐号就暴露了,然后密码字典你懂的。)

  查看wordpress源文件发现作者存档页面链接是这样获取的:

  /**

  * Retrieve the URL to the author page for the user with the ID provided.

  *

  * @since 2.1.0

  * @uses $wp_rewrite WP_Rewrite

  * @return string The URL to the author's page.

  */

  function get_author_posts_url($author_id, $author_nicename = '') {

  global $wp_rewrite;

  $auth_ID = (int) $author_id;

  $link = $wp_rewrite->get_author_permastruct();

  if ( empty($link) ) {

  $file = home_url( '/' );

  $link = $file . '?author=' . $auth_ID;

  } else {

  if ( '' == $author_nicename ) {

  $user = get_userdata($author_id);

  if ( !empty($user->user_nicename) )

  $author_nicename = $user->user_nicename;

  }

  $link = str_replace('%author%', $author_nicename, $link);

  $link = home_url( user_trailingslashit( $link ) );

  }

  $link = apply_filters('author_link', $link, $author_id,$author_nicename);

  return $link;

  }

  那么只要重写下规则即可改变作者存档页面的链接,这里以作者ID为例:(将以下代码加入到functions.php文件)

  add_filter( 'request', 'v7v3_author_link_request' );

  function v7v3_author_link_request( $query_vars ) {

  if ( array_key_exists( 'author_name', $query_vars ) ) {

  global $wpdb;

  $author_id=$query_vars['author_name'];

  if ( $author_id ) {

  $query_vars['author'] = $author_id;

  unset( $query_vars['author_name'] );

  }

  }

  return $query_vars;

  }

  add_filter( 'author_link', 'v7v3_author_link', 10, 2 );

  function v7v3_author_link( $link, $author_id) {

  global $wp_rewrite;

  $author_id = (int) $author_id;

  $link = $wp_rewrite->get_author_permastruct();

  if ( empty($link) ) {

  $file = home_url( '/' );

  $link = $file . '?author=' . $author_id;

  } else {

  $link = str_replace('%author%', $author_id, $link);

  $link = home_url( user_trailingslashit( $link ) );

  }

  return $link;

  }

  再次访问

  abc.com/?author=$id

  则转跳到

  abc.com/author/$id

  这样一来就不会暴露网站用户以及管理员账号了。

  本文由wordpress主题教程网:http://v7v3.com 原创,原文地址:http://v7v3.com/wpjiaocheng/201310351.html 转载请注明出处谢谢!

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读