修复 Typecho 开发版编辑时无法使用预览文章功能问题

技术 现有 3 评论

因正式版长期未更新,因此手动更新至开发版(v1.2),更新后发现编辑文章时多了一个预览功能,可以在正式页面中仿制渲染效果。

起因

点击预览时发现页面无法加载,打开控制台可见其报错为

Refused to display '' in a frame because it set 'X-Frame-Options' to 'deny'

和开发者联系后发现其预览功能使用 iframe 功能实现,

深入

检查后发现是 NGINX 限制其 iframe 功能,配置为

    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";

此段配置来源于 Cipherli.st 用于防范攻击行为。

解决

参考 Mozilla 官方文档(具体参见参考链接)可知

X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在 <frame>, <iframe>, <embed> 或者 <object> 中展现的标记。站点可以通过确保网站没有被嵌入到别人的站点里面,从而避免 clickjacking(点击劫持) 攻击。

其中 X-Frame-Options 有三个可用值

因此将配置文件改为以下即可

    add_header X-Frame-Options sameorigin always;

其他的 Web 服务的配置方法详见参考链接,安全的 NGINX 配置文件可使用 SSL Configuration Generator 生成。

附录

参考链接

如果遇到问题或者对文章内容存疑,请在下方留言,博主看到后将及时回复,谢谢!
回复 / 取消
回答36+23=
  1. 神秘人

    怪不得呢,我前几天改完全站 HTTPS 后功能就不能用了,还没来得及处理。

    Firefox 71.0 Windows 10 回复
    1. 刘先生
      @神秘人

      我也是才解决完就看到了这个文章。。。一言难尽

      Chrome 79.0.3945.88 macOS Catalina 回复
  2. 这个有用,马克一下。

    手机百度 11.17.0.13 Android Marshmallow 回复