阻止了具有来源的框架访问Wordpress中的跨域框架

时间:2018-11-25 18:03:44

标签: php wordpress same-origin-policy

我正在一个网站上工作,假设网站名称为“ https://website(基于wordpress),其中在控制台上出现以下错误:

Uncaught DOMException: Blocked a frame with origin "https://website" from accessing a cross-origin frame.

    at contents (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,utils,underscore,wp-util,backbone,&load%5B%5D=moxiejs,plupload&ver=4.9.8:2:26921)

    at Function.map (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,utils,underscore,wp-util,backbone,&load%5B%5D=moxiejs,plupload&ver=4.9.8:2:3613)

    at a.fn.init.n.fn.(anonymous function) [as contents] (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,utils,underscore,wp-util,backbone,&load%5B%5D=moxiejs,plupload&ver=4.9.8:2:27001)

    at b (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=postbox,thickbox,hoverIntent,common,admin-bar,wp-a11y,updates,plugin-install,svg-painter,heartbeat,wp-auth-check,shortcode,wp-ba&load%5B%5D=ckbone,media-models,wp-plupload,wp-mediaelement,wp-api-request,media-views,media-editor,media-audiovideo,mce-view,imgareaselect,&load%5B%5D=image-edit&ver=4.9.8:347:103)

    at HTMLBodyElement.<anonymous> (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=postbox,thickbox,hoverIntent,common,admin-bar,wp-a11y,updates,plugin-install,svg-painter,heartbeat,wp-auth-check,shortcode,wp-ba&load%5B%5D=ckbone,media-models,wp-plupload,wp-mediaelement,wp-api-request,media-views,media-editor,media-audiovideo,mce-view,imgareaselect,&load%5B%5D=image-edit&ver=4.9.8:347:1306)

    at HTMLBodyElement.dispatch (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,utils,underscore,wp-util,backbone,&load%5B%5D=moxiejs,plupload&ver=4.9.8:3:12444)

    at HTMLBodyElement.r.handle (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,utils,underscore,wp-util,backbone,&load%5B%5D=moxiejs,plupload&ver=4.9.8:3:9173)

    at Object.trigger (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,utils,underscore,wp-util,backbone,&load%5B%5D=moxiejs,plupload&ver=4.9.8:3:11573)

    at Object.a.event.trigger (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,utils,underscore,wp-util,backbone,&load%5B%5D=moxiejs,plupload&ver=4.9.8:9:8275)

    at HTMLDivElement.<anonymous> (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,utils,underscore,wp-util,backbone,&load%5B%5D=moxiejs,plupload&ver=4.9.8:3:18991)

上述错误是通过单击wordpress插件的View Details部分(如下所示)生成的:

enter image description here

每个单个wordpress插件中似乎都存在此错误,但当我在新标签页中打开时,此错误有效,但在同一窗口中打开时,此错误无效。


问题陈述:

我想知道我需要在wordpress中修改哪个文件才能解决此错误。这个错误似乎在每个wordpress插件中都存在。 如前所述,它可以在新标签中使用,但不能在同一页面上使用

我觉得我必须通过查看上面的错误( load-scripts.php,因为该文件中生成了错误)在以下文件中进行一些更改,但不确定是哪一行我需要添加才能使其正常运行。

https://website/wp-admin/load-scripts.php

1 个答案:

答案 0 :(得分:3)

您的WordPress管理界面发生了一些问题。

首先要注意的是,您描述的错误是一个众所周知的问题,您可能已经注意到:SecurityError: Blocked a frame with origin from accessing a cross-origin frame

看看那里的第一个答案:

  

您无法使用JavaScript访问其他来源的内容,   如果可以的话,那将是一个巨大的安全漏洞。为了   同源策略浏览器阻止试图访问框架的脚本   起源不同。

     

协议,主机名和端口必须与您的域相同,如果您   要访问框架。

要注意的第二件事是WordPress管理界面中的“查看详细信息” 按钮的作用:它打开一个包含和iframe的ThickBox,它经常在IFrame中显示远程内容。此处详细描述了其工作方式:https://codex.wordpress.org/Javascript_Reference/ThickBox

load-scripts.php是在管理员中加载的重要WordPress核心文件,用于加载JavaScript文件而无需嵌入每个文件。这些JavaScript文件通常使用admin_enqueue_scripts()函数(https://codex.wordpress.org/Plugin_API/Action_Reference/admin_enqueue_scripts)添加到WordPress管理员中。

由于您的问题很少见,并且插件的“查看详细信息”按钮几乎在每次出现时都起作用:

1。通常,“查看详细信息” iframe是从WordPress所在的同一位置加载的-因此,您可能会遇到问题,例如浏览器希望从其他主机上加载它。

如果您在WordPress安装中配置有误,并且Thinbox尝试从浏览器认为是另一台主机的主机上获取IFrame,则会发生这种情况。正确配置WordPress。

2。您有一个编程错误的插件或主题,正在注入导致此问题的脚本

解决方案:逐一停用主题和所有插件,然后查看错误是否仍然存在。这样,您可以找出导致问题的修改,然后向插件开发人员提出错误请求。

几乎100%会确定单个插件,主题或配置错误引起了此问题。