我正在尝试使用以下方法删除仅针对特定控制器操作的“X-Frame-Options”标头:
protected override void OnResultExecuting(ResultExecutingContext filterContext)
{
filterContext.HttpContext.Response.Headers.Remove("X-Frame-Options");
base.OnResultExecuting(filterContext);
}
Run Code Online (Sandbox Code Playgroud)
然而,这似乎根本不起作用。我可以让它在我的网站上正常工作的唯一方法是将此代码添加到下面的 global.asax 中。我很确定我在 ASP.NET MVC / IIS 管道中缺少正确的步骤,该步骤允许我覆盖该标头的 IIS 设置。这可能吗?
protected void Application_EndRequest()
{
Response.Headers.Remove("X-Frame-Options");
}
Run Code Online (Sandbox Code Playgroud)
至于我为什么要这样做,我正在构建一个小部件,用户可以通过使用 iframe 在他们的个人网站上使用该小部件,但允许他们将信息发回我们的网站。我意识到关闭此标头会带来安全隐患,虽然我欢迎任何有关如何减轻这些风险的建议,但我只是想知道我所要求的是否可行。
我在网站页面上设置 x-frame-options 但由于某些嵌套逻辑,在某些页面上我看到重复的值,例如:
X-FRAME-OPTIONS:SAMEORIGIN,SAMEORIGIN
Run Code Online (Sandbox Code Playgroud)
代替:
X-FRAME-OPTIONS:SAMEORIGIN
Run Code Online (Sandbox Code Playgroud)
是否可以将重复的值分配给 X-FRAME-OPTIONS,并且它会选择分配的第一个值并忽略其余值吗?
谢谢。
我正在尝试修改 .htaccess 文件中的 x-frame-options。我希望只允许一个特定站点(除了同源站点)虽然我可以拒绝所有人,但我不知道如何只允许一个站点使用它,我已经在 MDN 上查找了文档,但一定是忽略了某些东西,或者我没有正确理解。
确实可以阻止所有代码的代码:
Header set X-Frame-Options DENY
Run Code Online (Sandbox Code Playgroud)
但是,以下示例均无效并导致 500 外部错误
Header set X-Frame-Options ALLOW-FROM URL
Header set X-Frame-Options: ALLOW-FROM URL
X-Frame-Options: ALLOW-FROM URL
Run Code Online (Sandbox Code Playgroud)
我在 htaccess 文件中有其他代码,并添加了上述所有代码以在文件的第一行进行测试。
谢谢你的帮助。
我正在从 X-Frame-Options 迁移到内容安全策略以修复点击劫持漏洞。我的应用程序曾经SAMEORIGIN在 hteX-Frame-Options标头中设置策略。中的等效选项是Content-Security-Policy什么?
我正在尝试通过 DRF 进行 GET API 调用。
我的网址如下所示: http://127.0.0.1: 8000/patha/pathb/pathc/pathd/cd7701b?name=IT&size=20&workflow=rv
但它产生了一个错误:
if response.get('X-Frame-Options') is not None:
AttributeError: 'NoneType' object has no attribute 'get'
Run Code Online (Sandbox Code Playgroud)
但是当我只是发送两个查询参数时:
http://127.0.0.1:8000/patha/pathb/pathc/pathd/cd007b?name=IT&size=20
Run Code Online (Sandbox Code Playgroud)
或者,这三个参数中的两个参数的任意组合将到达视图方法。
我的视图方法如下所示:
class MyRtList(generics.ListAPIView, customMixin):
...
# Here I'd like to use all three inputs:
# cd007b
# `name` and `size`
Run Code Online (Sandbox Code Playgroud)
和 urls.py:
url(r'patha/pathb/pathc/(?P<name>[^/]+)?$',views.MyRtList.as_view()),
Run Code Online (Sandbox Code Playgroud)
我正在经历医生。使用 param1 和 param2 显示的示例。最多可以使用两个查询参数吗?是否禁止使用像 cd007b 和查询参数这样的混合数据?因为它会被 3 个参数卡住,但不会被 2 个参数卡住。
哪里出了问题?
我想在标签元素内加载网页iframe。
例如:
<iframe src="https://www.google.com/" title="Google"></iframe>
这给了我这个错误:
Refused to display 'https://www.google.com/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.
如何在 Nuxt.js 应用程序(或 Vue.js - 它应该是非常相似的配置)中解决这个问题?我尝试使用 nuxt-helmet,但根据 dosc,我可以使用DENY或SAMEORIGIN,因为ALLOW-FROM的浏览器支持有限。
我希望允许任何人通过 iFrame 嵌入我的 Rails 网站。但我只想打开一些特定的路线,例如/emded/entity1/:entity1_id和/emded/entity2/:entity2_id。
例如,Youtube 就是这么做的。我可以嵌入以下代码:
<iframe width="420" height="315"src="https://www.youtube.com/embed/tgbNymZ7vqY">
</iframe>
Run Code Online (Sandbox Code Playgroud)
但如果我将src属性更改为 just https://www.youtube.com/,这个 iframe 将不会显示任何内容。
在 Rails 中做同样的事情的方法是什么?
我尝试遵循为 Rails 4 找到的指南:http ://jerodsanto.net/2013/12/rails-4-let-specific-actions-be-embedded-as-iframes/
我在应用程序控制器中创建了一个方法:
def allow_iframe
response.headers.delete "X-Frame-Options"
end
Run Code Online (Sandbox Code Playgroud)
然后我将其添加到控制器中,并使用显示 iframe 内容(页面)的操作。after_action :allow_iframe,仅: :show_page_in_iframe
这是控制器操作本身:
def show_page_in_iframe
...
respond_to do |format|
format.html { render layout: 'iframe' }
end
end
Run Code Online (Sandbox Code Playgroud)
然后我将这些更改部署到生产环境,将带有相应 URL 的 iframe 嵌入到“localhost”页面。
<iframe src="https://www.example.com/entity1/embed/66efdc3e-7cb7-436d-98e8-63275fa74ebd" height="500" width="100%" style="border:0"></iframe>
Run Code Online (Sandbox Code Playgroud)
但在 Chrome 控制台中我可以看到Refused to display 'https://www.example.com/' in a frame because it …
我正在尝试实现 Facebook 页面插件,它在 iOS 和 MacOS 上除了 Safari 之外的所有浏览器上都能正常工作
这是我要添加的代码(直接来自文档 - https://developers.facebook.com/docs/plugins/page-plugin)
<div id="fb-root"></div>
<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v15.0&appId=123456789012345&autoLogAppEvents=1" nonce="Dbo7zqru"></script>
Run Code Online (Sandbox Code Playgroud)
和
<div class="fb-page" data-href="https://www.facebook.com/myfacebookhandle" data-tabs="timeline" data-width="" data-height="550" data-small-header="true" data-adapt-container-width="true" data-hide-cover="true" data-show-facepile="false"></div>
Run Code Online (Sandbox Code Playgroud)
我得到的只是旋转加载图形和各种控制台错误,例如
拒绝在框架中显示“https://www.facebook.com/login/?next=https%3A%2F%2Fwww.facebook.com%2F”,因为它将“X-Frame-Options”设置为“DENY” 。
您知道为什么 Safari 有问题但其他浏览器没有问题吗?我可以采取什么措施来解决这个问题?
谢谢
Safari -> 首选项 -> 隐私
然后取消选中“隐藏跟踪器的 IP 地址”即可使其在 MacOS 上运行
可能重复:
克服"X-Frame-Options禁止显示"
我在服务器(Heroku)上有这个HTML代码.从www.example.com的iframe我点击"登录谷歌"按钮,但是我收到以下错误消息:
Refused to display document because display forbidden by X-Frame-Options
Run Code Online (Sandbox Code Playgroud)
我尝试<meta http-equiv="X-Frame-Options" content="GOFORIT">在www.example.com的标题上添加,但仍然无法正常工作.有任何想法吗?谢谢
<html>
<head>
<title>Test</title>
</head>
<body>
<iframe src="http://www.example.com" width=1000 height=1000></iframe>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 假设我的Web应用程序受到CSRF令牌的CSRF攻击保护,此外,它还使用SSL并受到XSS攻击防护.此外,出于此问题的目的,假设它仅用于最近的浏览器并且它们没有错误.我可以使用X-Frame-Options:Deny标头来防止基于帧的点击劫持,但是我没有看到它将提供什么额外的保护,因为任何基于帧的表单提交都缺少CSRF令牌.(并且同源策略阻止攻击者的JavaScript发现CSRF令牌.)问题:
还有其他一种不基于框架的点击劫持吗?(即,是一个X-Frame-Options:拒绝完全的点击劫持防御?)
在没有X-Frame-Options:Deny标头的情况下,根据上述假设,点击劫持攻击仍有可能成功吗?
(我问的不是因为我想阻止基于帧的点击劫持,因为我确实包含了X-Frame-Options:Deny头.相反,我试图理解点击劫持攻击的范围.)
x-frame-options ×10
iframe ×3
clickjacking ×2
security ×2
.htaccess ×1
csrf ×1
facebook ×1
heroku ×1
html ×1
javascript ×1
nuxtjs ×1
query-string ×1
safari ×1
vue.js ×1