【问题标题】:Can't access WordPress Dashboard in an iframe无法在 iframe 中访问 WordPress 仪表板
【发布时间】:2013-01-15 13:13:56
【问题描述】:

我在 http://foo.example.com 上有一个 iframe,它的目标是 http://bar.example.com

http://bar.example.com 是 WordPress 安装。我可以查看该页面并单击所有页面并发布,但是当我尝试转到后端时,我得到了

Refused to display document because display forbidden by X-Frame-Options.

请求被中止。

根据this question,我添加了这个成功发送的标头:

header('X-Frame-Options: GOFORIT');

还有什么可以限制对仪表板(和登录屏幕)的访问?

我可以访问两个子域,也可以使用 htaccess

【问题讨论】:

  • 没错,没错!你能提供一个答案来接受吗?或者这个问题是否应该被关闭,因为它显然是重复的?
  • 不同的站点,不是重复的。我在这里做一个总结。

标签: wordpress iframe x-frame-options


【解决方案1】:

这是一个更好的解决方案,当您更新 Wordpress 时不会中断:

remove_action( 'login_init', 'send_frame_options_header' );
remove_action( 'admin_init', 'send_frame_options_header' );

如果您使用的是 Apache,这是另一种解决方案。将其放入您的 .htaccess 中:

<IfModule mod_headers.c>
    Header unset X-Frame-Options
    Header always unset X-Frame-Options
</IfModule>

【讨论】:

  • 这是一个完美的解决方案,谢谢!
  • 完美解决方案!
  • 感谢您的客气话。我忘了提到人们需要在 functions.php 中调用 remove_action
【解决方案2】:

据此,在 WordPress Answers 中,Receiving “This content cannot be displayed in a frame” error on login page,WordPress 发送了一个特殊的标头

X-Frame-Options: SAMEORIGIN

防止clickjacking。因此,将管理员嵌入为 iframe。

可以消除此标头,从 wp-includes/default-filters.php 中删除几个操作,但风险自负。

有人可能会使用非常相似的名称注册一个域,将您的登录信息嵌入后台 iframe,并在您尝试输入登录凭据时记录下来。

请阅读 WPSE 上的完整问答。

【讨论】:

    猜你喜欢
    • 2016-03-27
    • 2017-05-11
    • 2023-03-27
    • 1970-01-01
    • 2021-01-17
    • 2016-12-08
    • 2018-08-25
    • 2017-03-04
    相关资源
    最近更新 更多