Cloudflare блокирует WordPress load-scripts.php длинный URL - PullRequest
1 голос
/ 02 апреля 2019

в одном из наших приложений Wordpress у нас есть Cloudflare, и месяц назад мы заметили проблему, заключающуюся в том, что наши javascript-коды не загружаются.URL-адрес: https://somedomain.com/wp-admin/load-scripts.php?c=0&load%5B%5D=hoverIntent,common,admin-bar,heartbeat,autosave,wp-ajax-response,jquery-color,wp-lists,jquery-query,admin-comments,suggest,jquer&load%5B%5D=y-ui-mouse,jquery-ui-sortable,postbox,tags-suggest,tags-box,word-count,post,editor-expand,thickbox,shortcode,wp-plupload,mediael&load%5B%5D=ement,wp-mediaelement,media-views,media-editor,media-audiovideo,mce-view,image-edit,svg-painter,wp-auth-check,jquery-ui-tabs,jqu&load%5B%5D=ery-ui-draggable,jquery-ui-slider,jquery-touch-punch,iris,wp-color-picker,media-upload,wp-pointer,editor,wplink,wp-embed&ver=4.8.9

Когда мы вводим этот URL-адрес в нашем браузере, он показывает страницу Cloudflare и капчу, чтобы ввести «Еще один шаг. Пожалуйста, завершите проверку безопасности для доступа ...». Так что, вероятно, URL слишкомlong, и безопасность Cloudflare Owasp видит проблемы в этом.

Эта проблема, вероятно, происходит из файла Wordpress load-scripts.php (код ниже), который объединяет файлы в один, и у нас есть много плагинов.

Что мы можем сделать с этим?

  1. Мы могли бы попытаться переписать этот код и разбить этот файл на несколько, но мы не хотели бы изменять файл Wordpress: /
  2. Может быть, есть какой-нибудь плагин, который делает это?
function _print_scripts() {
    global $wp_scripts, $compress_scripts;
    $zip = $compress_scripts ? 1 : 0;
    if ( $zip && defined('ENFORCE_GZIP') && ENFORCE_GZIP )
        $zip = 'gzip';
    if ( $concat = trim( $wp_scripts->concat, ', ' ) ) {
        if ( !empty($wp_scripts->print_code) ) {
            echo "\n<script type='text/javascript'>\n";
            echo "/* <![CDATA[ */\n"; // not needed in HTML 5
            echo $wp_scripts->print_code;
            echo "/* ]]> */\n";
            echo "</script>\n";
        }
        $concat = str_split( $concat, 128 );
        $concat = 'load%5B%5D=' . implode( '&load%5B%5D=', $concat );
        $src = $wp_scripts->base_url . "/wp-admin/load-scripts.php?c={$zip}&" . $concat . '&ver=' . $wp_scripts->default_version;
        echo "<script type='text/javascript' src='" . esc_attr($src) . "'></script>\n";
    }
    if ( !empty($wp_scripts->print_html) )
        echo $wp_scripts->print_html;
}
...