我正在Django中编写一个应用程序,使用户能够从我的网站嵌入视频。我正在为用户提供iFrame代码来嵌入视频。我发现这是不允许的。尝试执行此操作时,控制台显示以下错误:
X-Frame-Options拒绝加载:http://blah.com/embed/110/不允许跨源框架。
经过大量研究,我发现了正在发生的事情。我的问题是:有没有人知道像Youtube和Vimeo这样的服务如何解决这个问题?
答案 0 :(得分:14)
有一个特殊的标题允许或禁止在i-frame中显示页面 - X-Frame-Options
它用于防止名为 clickjacking 的攻击。您可以查看Django关于它的文档https://docs.djangoproject.com/en/dev/ref/clickjacking/
希望其内容以i-frame显示的网站不会设置此标头。
我认为在安装Django时,默认情况下会启用此保护。如果您不允许在i-frames中嵌入您的内容,您可以在整个网站的设置中禁用clickjack保护,或者使用django.views.decorators.clickjacking
装饰器的每个视图控件:
xframe_options_exempt
xframe_options_deny
xframe_options_sameorigin
每个视图控件是更好的选择。