Cloudflare 阻止 wordpress 加载脚本.php长网址



在我们的一个Wordpress应用程序上,我们有Cloudflare,从一个月前开始,我们注意到一个问题,我们的javascript没有加载。网址是: 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 页面和验证码以输入"再走一步。请完成安全检查才能访问.."所以可能是网址太长了,Cloudflare Owasp 安全部门看到了其中的问题。

这个问题可能来自 Wordpress 加载脚本.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;
}

启用自动缩小

  • 登录到仪表板。
  • 选择您的帐户和网站。
  • 转到速度>优化。
  • 选择要缩小的文件类型。

检查您的WordPress设置。


尝试使用wp_enqueue_script

add_action('wp_enqueue_scripts','load_script');
function load_script() {
    wp_enqueue_script( 'jsfile', plugins_url( '/js/jsfile.js', __FILE__ ));
}

其中load_script是来自wp_register_script的处理程序。请检查最大浏览器网址长度和加载脚本.php未加载,希望对您有所帮助。

相关内容

  • 没有找到相关文章

最新更新