当我尝试在 chrome 中检查元素时出现错误:
拒绝在框架中显示“ http://www.samplesite.com/ ”,因为它被设置'X-Frame-Options'为'SAMEORIGIN'。
如何显示在该网站有一个iframe中一个网站
'X-Frame-Options'来'SAMEORIGIN'?
我尝试在 google 上搜索,但找不到任何合适的解决方案,有些仅适用于 asp.net。
我试图在IFrame中嵌入3D安全和网络银行页面,我能够成功地为我测试的一些网站实现它.但我怀疑所有银行页面是否会在IFrame中打开.
如果有任何银行将x-frame-otpions设置为SAMEORIGIN或DENY怎么办?
尝试搜索有关此的技术规格,但找不到任何东西.
是否有一个常见的拇指规则或约定(在任何规范中),验证银行应该/不应该使用此标头?如果这对所有银行都有效,我怎么相信?
任何澄清都会有很大帮助.
PS:我知道还有其他方法可以打开授权网关.但是,我仍需要明确这种方法.
我需要将服务器级别的X-Frame选项设置为:
- X-Frame-Options:SAMEORIGIN
- X-Frame-Options:ALLOW-FROM https://example.com/
了解X-Frame选项是互斥的.看到这里.
但是,我的应用程序需要在https://example.com和其SAMEORIGIN中进行构建.
请告知是否有解决方法,同时保留我的应用程序的要求,允许在同一来源 框架并在1个外部网站上框架.
或者这不可能吗?
我正在使用http://www.jacklmoore.com/colorbox在灯箱中显示网址的内容.实施后,彩盒没有显示任何东西.
后来,我注意到chrome日志中出现以下错误:
Refused to display document because display forbidden by X-Frame-Options.
Run Code Online (Sandbox Code Playgroud)
所以在记录之后我将以下行添加到网站的根.htaccess:
Header always append X-Frame-Options SAMEORIGIN
Run Code Online (Sandbox Code Playgroud)
允许iframe嵌入我自己的域名.
但我仍然得到错误,我是x-frame的新手,我正在研究现有的应用程序,所以我认为.htaccess解决方案会很好,但它可以被一些代码覆盖吗?请注意,它不在服务器配置中.
更新:这适用于IE但Chrome仍然会抛出此错误. 我试图通过我拥有的另一个网站构建我拥有的网站.以下是我在Chrome上的JS控制台中收到的错误消息:
Multiple 'X-Frame-Options' headers with conflicting values ('AllowAll, SAMEORIGIN, AllowAll') encountered when loading 'http://subdomain.mysite.com:8080/Dir/'. Falling back to 'DENY'.
Refused to display 'http://subdomain.mysite.com:8080/Dir/' in a frame because it set 'X-Frame-Options' to 'AllowAll, SAMEORIGIN, AllowAll'.
Run Code Online (Sandbox Code Playgroud)
我在任何地方搜索了SAMEORIGIN,我没有设置任何地方.
主站点是www.mysite.com,另一个站点是subdomain.mysite.com.显然,同源政策使我无法做到这一点.所以我将subdomain.mysite.com上的X-Frame-Options标题设置为"AllowAll".在开始请求方法我添加了这个:
HttpContext.Current.Response.Headers.Remove("X-Frame-Options");
HttpContext.Current.Response.AddHeader("X-Frame-Options", "AllowAll");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
Run Code Online (Sandbox Code Playgroud)
在页面级别我添加了这个:
<meta name="x-frame-options" content="allowall" />
Run Code Online (Sandbox Code Playgroud)
在Javascript中我添加了这个:
<script type="text/javascript">
document.domain = "mysite.com";
</script>
Run Code Online (Sandbox Code Playgroud)
我的事情已经不多了......请提前感谢您的帮助.
我做了一个有一个页面的页面iframe.在内部,iframe我想显示多个不同的链接,如来自Facebook,新闻,或YouTube视频或任何其他可能的URL的文章.但是,由于Xframe标头,我无法这样做.我提到了以下链接:https:
//docs.djangoproject.com/en/1.8/ref/clickjacking/
和
Django XFrameOptionsMiddleware(X-Frame-Options) - 通过客户端IP允许iframe
但没有得到任何帮助.
我的settings.py文件MIDDLEWARE_CLASSES是:
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
Run Code Online (Sandbox Code Playgroud)
从http://django-secure.readthedocs.org/en/latest/middleware.html,我发现使用装饰器@frame_deny_exempt我的问题可以解决.不过,我在chrome控制台中遇到了同样的错误,即
Refused to display '<URL>' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN, SAMEORIGIN'.
对此有何帮助?
我正在尝试实现一个可嵌入的小部件,其功能类似于Twitter嵌入式推文.最简单的解决方案虽然可能不是最好的,但似乎是iframe或HTML5嵌入 - 但两者都被服务器上的X-Frame-Options标头阻止.
我在完全控制下的专用服务器上运行PHP 5.3和Apache 2.2.
我试过放在iframe PHP文件第一行的第一行:
header_remove("X-Frame-Options");
Run Code Online (Sandbox Code Playgroud)
我尝试将以下内容添加到.htaccess:
Header unset X-Frame-Options
Run Code Online (Sandbox Code Playgroud)
我已经检查了httpd.conf,vhost .conf文件,甚至是PHP.INI,并搜索了"x-frame" - 两者中没有任何明显相关.
没有mod_security或其他应该在我看到的服务器上注入此插件的插件.
然而,无论我做什么,curl都会验证以下HTTP标头:
X-Frame-Options: DENY
Run Code Online (Sandbox Code Playgroud)
是否有一些,可能奇怪的名称设置在某处仍可能强制此标头?
我需要X-Frame-Options: SAMEORIGIN从我的一些操作中删除标题,这些操作应该为iframe呈现内容.只要它被添加到默认我在禁用它的请求Startup.cs:services.AddAntiforgery(o => o.SuppressXFrameOptionsHeader = false);.然后我写了一个简单的中间件:
app.Use(async (context, next) =>
{
context.Response.Headers.Add("X-Frame-Options", "SAMEORIGIN");
await next();
});
Run Code Online (Sandbox Code Playgroud)
回答跨域请求所需的操作使用结果过滤器属性进行修饰:
public class SuppresXFrameOptionFilter : ResultFilterAttribute
{
public override async Task OnResultExecutionAsync(ResultExecutingContext context,
ResultExecutionDelegate next)
{
context.HttpContext.Response.Headers.Remove("X-Frame-Options");
await next();
}
}
Run Code Online (Sandbox Code Playgroud)
这就是疲惫.第一个跨域请求失败,因为尽管过滤器最终按预期工作,但X-Frame-Options: SAMEORIGIN仍然存在于响应中(我next()在中间件之后检查了它- 标题重新出现).如果我按F5,标题不再出现在响应中,一切正常.只有X-Frame-Options标题才会发生这种情况,正确删除自定义标题.什么使X-Frame-Options被删除的内容再次出现在响应中?
我正在尝试修复我的标题.在我访问我的页面时检查网络请求时发现两个错误:
1)X-FRAME-OPTIONS: SAMEORIGIN显示两次:
Cache-Control:no-cache
Connection:Keep-Alive
Content-Encoding:gzip
Content-Type:text/html; charset=UTF-8
Date:Wed, 04 Oct 2017 12:58:30 GMT
Keep-Alive:timeout=3, max=1000
Server:Apache
Set-Cookie:laravel_session=eifQ%3D%3D; expires=Wed, 04-Oct-2017 14:58:30 GMT; Max-Age=7200; path=/; secure; httponly
Set-Cookie:XSRF-TOKEN=n0%3D; expires=Wed, 04-Oct-2017 14:58:30 GMT; Max-Age=7200; path=/
Transfer-Encoding:chunked
X-CDN:Incapsula
X-Frame-Options:SAMEORIGIN * <-------------- HERE
X-Frame-Options:SAMEORIGIN * <-------------- HERE
X-Iinfo:7-6626704-6651371 NNNN CT(0 0 0) RT(1507121414380 495318) q(0 1 1 -1) r(2 2) U16
X-XSS-Protection:%E2%80%9C1;mode=block%E2%80%9D <-------- Strange Encoding here...
Run Code Online (Sandbox Code Playgroud)
2)我可以在控制台上看到以下错误X-XSS-PROTECTION:
解析标题X-XSS-Protection时出错:â;; mode =blockâ:字符位置0预期为0或1.将应用默认保护.
我正在使用Laravel 5.0.FrameGuard.php默认情况下,自Laravel 4.2以来,中间件未处于活动状态,但您可以选择在需要时启用它.当它被禁用时,我看到上面的错误,我真的无法理解为什么,所以我的第一个虽然是通过实际使用该中间件来覆盖这些头.
当我添加Illuminate\Http\Middleware\FrameGuard.php包含以下代码的中间件时,似乎没有任何改变:
public function …Run Code Online (Sandbox Code Playgroud) 我想在我的网站中禁用x-frame-options,我希望没有其他网站可以使用iframe在他们的网页中显示我的网页.我的网站是在ASP.net MVC3中制作的,并在IIS 7.5中托管.
x-frame-options ×10
iframe ×6
php ×3
javascript ×2
3d-secure ×1
apache ×1
asp.net ×1
asp.net-core ×1
c# ×1
clickjacking ×1
colorbox ×1
django ×1
http-headers ×1
iis ×1
jquery ×1
laravel ×1
laravel-5 ×1
python ×1
web-config ×1
webserver ×1