我正在实施一个"传递",X-Frame-Options让合作伙伴网站将我的雇主的网站包装在iframe中,如本文所述:http://blogs.msdn.com/b/ieinternals/archive/2010/03/30 /combating-clickjacking-with-x-frame-options.aspx
(将URL分拆为帖子)
简而言之,我们的合作伙伴页面上有一个iframe,其中包含针对我们域名的网址.对于我们域中的任何页面,他们都会添加一个特殊的url参数&@mykey=topleveldomain.com,告诉我们页面的顶级域名是什么.
我们的过滤器从URL中获取合作伙伴TLD(如果提供),并根据白名单对其进行验证.如果它在列表中,我们将X-Frame-Options带有值的标头发送ALLOW-FROM topleveldomain.com(并为将来的点击添加一个cookie).如果它不在我们的白名单上,我们发货SAMEORIGIN或DENY.
问题是,ALLOW-FROM domain对于最新的Firefox和谷歌浏览器,整体上的结果似乎是无差异.至少,IE8似乎正在正确实施ALLOW-FROM.
看看这个页面:http: //www.enhanceie.com/test/clickjack.在"应该显示内容"的第5个(第5个)框之后,是一个不应该显示内容的框,但是.在这种情况下,iframe中的页面正在发送X-Frame-Options: ALLOW-FROM http://www.debugtheweb.com,与TLD完全不同http://www.enhanceie.com.然而,框架仍然显示内容.
是否X-Frame-Options真正实现ALLOW-FROM跨相关(桌面)浏览器的任何见解?也许语法已经改变了?
一些感兴趣的链接:
我试图允许某个特定域名通过iframe访问我的网站
Header set X-Frame-Options ALLOW-FROM https://www.that-site.com
Run Code Online (Sandbox Code Playgroud)
我知道这可以通过将上面的行添加到Apache服务器的配置来完成.
这里有两个问题.
1)应该添加哪个配置文件?apache在Unix和windows上运行,如果不是同一个文件
2)在启用all-from时,我仍然希望能够从我自己的域运行一些iframe.我可以在allow-from之后添加以下行吗?
Header set X-Frame-Options SAMEORIGIN
Run Code Online (Sandbox Code Playgroud)
或者我应该在all-from中添加我自己的域名,即
Header set X-Frame-Options ALLOW-FROM https://www.that-site.com, http://www.my-own-domain.com
Run Code Online (Sandbox Code Playgroud)
真的需要解决这个问题.提前致谢
我有一个动态网站,我必须从clickjacking攻击中获得安全保障.在数据库中搜索时获取这些类型的值我对点击劫持知之甚少,但究竟是什么没有得到如此请任何知道的人帮助我.
假设您有一个JavaScript小部件,当且仅当用户想要点击它时,才需要向您的Web应用程序发出请求.您不希望此请求容易受到CSRF的攻击,因此您可以向页面编写iframe.根据原始继承规则,父站点将无法读取CSRF令牌.然而,点击劫持(或像劫持)呢?由于CSRF,你必须在iframe中,而x-frame-options无法帮助,对于帧破坏者也是如此.
在加载小部件后,攻击者将在iframe中应用SVG掩码.此掩码将使iframe不可见.此时,攻击者可以将iframe的大小调整为页面大小,也可以使iframe跟随游标不可见.无论何时用户点击页面上的任何位置,iframe都会收到点击事件及其游戏结束.
所以有一个二元性,似乎你陷入了CSRF和Clickjacking之间.什么是这个问题的最佳解决方案(如果有的话)?
我们正在开发一个可以完成各种活动的RESTful API.我们已经完成了Nessus漏洞扫描,以查看安全漏洞.事实证明,我们有一些泄漏导致点击劫持,我们找到了解决方案.我已经加入x-frame-options作为SAMEORIGIN以处理问题.
我的问题是,由于我是一个API,我是否需要处理点击劫持?我想第三方用户应该能够通过iframe访问我的API,而我不需要处理这个问题.
我错过了什么吗?你能分享一下你的想法吗?
我有两个Web应用程序:Web应用程序(Web应用程序)和报表Web.我想在web-app中嵌入报表web <iframe>.因此浏览器拒绝了错误:
X-Frame-Options:DENY
有帮助吗?
我在tomcat web.xml中添加了以下代码片段以防止点击劫持.
在添加内置过滤器的部分中,我已经添加了
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<init-param>
<param-name>antiClickJackingOption</param-name>
<param-value>SAMEORIGIN</param-value>
</init-param>
</filter>
Run Code Online (Sandbox Code Playgroud)
对于过滤器映射部分,我添加了.
<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
编辑并进行这两项更改后,测试页面(我试图打开目标页面的html页面<frame>)通过(无法在框架内打开目标页面).
但是apache欢迎页面给出了404新的更改.
如果我遗失任何东西,请告诉我.
我正在尝试处理Java Web应用程序的点击劫持。我从Clickjacking防御备忘单中得到了一个解决方案
我在中添加了一个过滤器 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>OWASP ClickjackFilter</display-name>
<filter>
<filter-name>ClickjackFilterDeny</filter-name>
<filter-class>org.owasp.filters.ClickjackFilter</filter-class>
<init-param>
<param-name>mode</param-name>
<param-value>DENY</param-value>
</init-param>
</filter>
<filter>
<filter-name>ClickjackFilterSameOrigin</filter-name>
<filter-class>org.owasp.filters.ClickjackFilter</filter-class>
<init-param>
<param-name>mode</param-name>
<param-value>SAMEORIGIN</param-value>
</init-param>
</filter>
<!-- use the Deny version to prevent anyone, including yourself, from framing the page -->
<filter-mapping>
<filter-name>ClickjackFilterDeny</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)
我的过滤器类看起来像
package org.owasp.filters;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
public class ClickjackFilter implements Filter
{
private …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'.
对此有何帮助?
我想阻止我的网站被其他人点击劫持.所以在我的.htaccess文件中,我放置了这段代码(正常工作):
Header set X-Frame-Options SAMEORIGIN
Run Code Online (Sandbox Code Playgroud)
我的网站现在不会受到互联网上任何网站的影响.但是,我最近开发了一个移动应用程序,在我的网站托管的about-us下获取页面(我的网站包含www.mywebsite/about-us/author,www.mywebsite/about-us/company)以显示相同的详细信息.该应用程序.所以我做的是我在.htaccess文件中添加了这些行:
SetEnvIf REQUEST_URI ^about-us/$ aboutus_page
Header set X-Frame-Options SAMEORIGIN env=!aboutus_page
Run Code Online (Sandbox Code Playgroud)
除了mywebsite/about-us /"any page"下的所有页面之外,我希望我的其余页面免于iframed