确保/Includes/HTTP.php更新中的更改安全

时间:2018-06-26 作者:tom84

我已经注释掉了http中的以下两行。php,

function send_origin_headers() {
    $origin = get_http_origin();

    if ( is_allowed_http_origin( $origin ) ) {
    //  @header( \'Access-Control-Allow-Origin: \' .  $origin );
        //@header( \'Access-Control-Allow-Credentials: true\' );
        if ( \'OPTIONS\' === $_SERVER[\'REQUEST_METHOD\'] )
            exit;
        return $origin;
    }

    if ( \'OPTIONS\' === $_SERVER[\'REQUEST_METHOD\'] ) {
        status_header( 403 );
        exit;
    }

    return false;
}
因为头被发送了两次,所以出现了问题。现在,我想在WordPress安装中安全地安装此更改更新。我该怎么做?

1 个回复
SO网友:scytale

福霞是对的,你需要解决潜在的问题;然而,我忍不住回答了一个又快又脏的问题;它在定制插件时也很有用。

(您也可以通过更改文件的所有者和权限来保护该文件-但我不知道所有的含义)

中的起始注释之后your http。php添加此行:$GLOBALS[\'IS_MY_HTTP_SCRIPT\'] = TRUE;

对修改后的脚本进行备份,并将其放在更新安全的目录中

创建并激活以下插件,或将其代码添加到某些现有脚本中。

<?php
/*
Plugin Name: replace update with my backup
*/
if (empty($GLOBALS[\'IS_MY_HTTP_SCRIPT\']) && ! get_transient(\'myRollbackFailure\') ) {
  if (copy( \'/some_update_safe_dir/myhttp.bkup\', \'/path_to/wp-includes/http.php\') ) {
    $msg = \'Updated script replaced by my copy - I may need to modify my version\';
  } else {
    $msg = \'script updated - unable to replace with my version\';
   // prevent repeated failed attempts for 1 hour
   set_transient( \'myRollbackFailure\', \'fail\', 60 * 60 );
  }
  // maybe some code to email msg to admin
}
您的脚本版本将在随后的第一次站点导航或访问时替换更新的版本。

我已经对它进行了测试,它在Apache上工作;我不知道Windows在“执行”期间的不同文件锁定是否会阻止恢复。

结束