如何拒绝来自 iframe 的网站访问?

2023-12-21

我注意到一些网站出于安全原因拒绝从 iFrame 访问其注册和登录页面。我认为这是个好主意。

我想知道他们需要什么设置才能做到这一点,因为我想在我的网站上做同样的事情。该网站是用 Java 构建的,并在 Apache Tomcat 上运行。

如果有人知道这是如何完成的,如果您能分享,那就太好了。


这就是我使用的并且有效。我从这里得到了一切:Java 中的 OWASP 点击劫持保护 https://www.owasp.org/index.php/Clickjacking_Protection_for_Java_EE

在 web.xml 中,根据您要执行的策略添加其中之一:

<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>

    <!-- use the SameOrigin version to allow your application to frame, but nobody else
    <filter-mapping> 
        <filter-name>ClickjackFilterSameOrigin</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    -->

    ...

然后在java代码中:

public class ClickjackFilter implements Filter 
{

    private String mode = "DENY";

    /**
     * Add X-FRAME-OPTIONS response header to tell IE8 (and any other browsers who
     * decide to implement) not to display this content in a frame. For details, please
     * refer to http://blogs.msdn.com/sdl/archive/2009/02/05/clickjacking-defense-in-ie8.aspx.
     */
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse res = (HttpServletResponse)response;
        //If you have Tomcat 5 or 6, there is a known bug using this code.  You must have the doFilter first:
        chain.doFilter(request, response);
        res.addHeader("X-FRAME-OPTIONS", mode );            
        //Otherwise use this:
        //res.addHeader("X-FRAME-OPTIONS", mode );          
        //chain.doFilter(request, response);

    }

    public void destroy() {
    }

    public void init(FilterConfig filterConfig) {
        String configMode = filterConfig.getInitParameter("mode");
        if ( configMode != null ) {
            mode = configMode;
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何拒绝来自 iframe 的网站访问? 的相关文章

  • Java - 如何将特殊字符放入字符串中

    Java 似乎有很好的字符串处理能力 尽管如此 我还是遇到了最简单的问题 我需要动态字符串 它们在运行时更改 因此字符串类型不是一个好的选择 因为它们是不可变的 所以我使用字符数组 设置起来有点痛苦 但至少它们是可以修改的 我想创建一个字符
  • 位图内存不足错误

    我对这个错误有疑问 我从 URL 制作网站图标解析器 我这样做是这样的 public class GrabIconsFromWebPage public static String replaceUrl String url StringB
  • JavaFX 图像未在舞台中显示

    我尝试了很多次 尝试了很多方法 但都无法让自己的形象在舞台上如我所愿 我认为这可能与java寻找资源的路径有关 但我不确定 因为我刚刚开始使用视觉库 在本例中为JavaFX 这是我的目录结构 MyProject assets img myI
  • jvm 次要版本与编译器次要版本

    当运行使用具有相同主要版本但次要版本高于 JVM 的 JDK 编译的类时 JVM 会抛出异常吗 JDK 版本并不重要 类文件格式版本 http blogs oracle com darcy entry source target class
  • URL.setURLStreamHandlerFactory

    我正在使用带有嵌入式 Jetty 的可执行 jar 开发一个 Web 应用程序 我的jar包含一个依赖jar jar in jar 我参考了JarRsrcLoader and RsrcURLStreamHandlerFactory由 Ecl
  • Rails 安全:完全避免大规模分配

    我倾向于不需要批量分配 http guides rubyonrails org security html mass assignment我的生产代码中的功能 在我的测试代码中 我经常使用它 但在这些情况下我do想要设置任意列 因此 如果在
  • Java 正则表达式 - 字母数字,最多一个连字符,句点或下划线,七个字符长

    我是 Java 正则表达式工具的新手 尽管它们潜力巨大 但我很难完成这项任务 我想编写一个正则表达式来验证遵循以下语法的输入字符串 小写字母和数字的任意组合 仅一个下划线 一个破折号或一个句号 无其他特殊字符 最小长度为 5 我想出了以下解
  • 是否有任何API可以将Microsoft Exchange服务器与Java应用程序集成以进行任务同步?

    我正在尝试将 Java Web 应用程序与 Microsoft Exchange 服务器集成以实现双向日历 即任务 同步 是否有用于此集成的 Java 开源 商业 API 谢谢 文卡特 看一眼j 交易所 http sourceforge n
  • 容器中的 JVM 计算处理器错误?

    最近我又做了一些研究 偶然发现了这一点 在向 OpenJDK 团队抱怨之前 我想看看是否有其他人观察到这一点 或者不同意我的结论 因此 众所周知 JVM 长期以来忽略了应用于 cgroup 的内存限制 众所周知 现在从 Java 8 更新某
  • 线程“main”中的异常 java.lang.StackOverflowError

    我有一段代码 但我无法弄清楚为什么它在线程 main java lang StackOverflowError 中给出异常 这是问题 Given a positive integer n prints out the sum of the
  • 异步迭代器

    我有以下代码 while slowIterator hasNext performLengthTask slowIterator next 由于迭代器和任务都很慢 因此将它们放入单独的线程中是有意义的 这是对迭代器包装器的快速而肮脏的尝试
  • 创建正则表达式匹配数组

    在Java中 我试图将所有正则表达式匹配返回到一个数组 但似乎您只能检查模式是否匹配某些内容 布尔值 如何使用正则表达式匹配来形成与给定字符串中的正则表达式匹配的所有字符串的数组 4城堡的回答 https stackoverflow com
  • 改变for循环的顺序?

    我遇到一种情况 我需要根据用户输入以不同的顺序循环遍历 xyz 坐标 所以我是 3D 空间中的一个区域 然后是一组像这样的 for 循环 for int x 0 x lt build getWidth x for int y 0 y lt
  • JavaFX - 为什么多次将节点添加到窗格或不同的窗格会导致错误?

    我现在正在学习基本的 JavaFX 我不明白我正在阅读的书中的这一说法 不 诸如文本字段之类的节点只能添加到一个窗格中一次 将节点添加到多次窗格或不同的窗格将导致运行时错误 我可以从书中提供的UML图看出它是一个组合 但我不明白为什么 库类
  • Android Gradle 同步失败:无法解析配置“:classpath”的所有工件

    错误如下 Caused by org gradle api internal artifacts ivyservice DefaultLenientConfiguration ArtifactResolveException Could n
  • 了解 Spark 中的 DAG

    问题是我有以下 DAG 我认为当需要洗牌时 火花将工作划分为不同的阶段 考虑阶段 0 和阶段 1 有些操作不需要洗牌 那么为什么 Spark 将它们分成不同的阶段呢 我认为跨分区的实际数据移动应该发生在第 2 阶段 因为这里我们需要cogr
  • 通过 AJP 将 REMOTE_USER 转发到 tomcat(例如用于 shibboleth)

    今天我刚刚遇到了以下问题 1 我将apache配置为基本身份验证 需要有效用户 这有效 2 我进一步配置 apache 将某些路径 在我的例子中为 idp 的请求转发到 tomcat servlet shibboleth IDP 结果是 s
  • Java中的回调接口是什么?

    SetObserver 接口的代码片段取自有效的Java 避免过度同步第67条 public interface SetObserver
  • 使用 JAD 反编译 java - 限制

    我正在尝试使用 Java 中的 JAD 反编译几个 jar 文件 我也尝试过 JD GUI 但运气更差 但出现了很多错误 一种类型 易于修复 似乎是内部类 但我也发现了这段代码 static int SWITCH TABLE atp com
  • 无法使用 wget 在 CentOS 机器上安装 oracle jdk

    我想在CentOS上安装oracle java jdk 8 我无法安装 java jdk 因为当我尝试使用命令安装 java jdk 时 root ADARSH PROD1 wget no cookies no check certific

随机推荐

  • 在 Audit.Net 中,有没有办法使用多个输出提供程序?

    我尝试设置下面的配置 但我认为只使用了其中之一 有没有办法将两者链接起来 或者有其他方法可以使用多个输出提供程序 Audit Core Configuration Setup UseElasticsearch config gt confi
  • 如何在 ubuntu 上重新安装 cassandra?

    我是 Ubutu linux Cassandra 的新手 我在我的 ubuntu 机器上使用 OpenJdk 测试了 Cassandra 有一些不错的文章解释了如何在 ubuntu 上安装 Cassandra 所以我可以这样做 我更改了一些
  • Git 中的文件级跟踪(同一目录中多个分支的文件)

    是否有任何脚本可以让人们记住某个目录中文件的单独分支 提交 以便可以同时处理同一目录中的分支 1 上的文件 1 和分支 2 上的文件 2 并让它们正确提交 如果没有我会自己实现 我的计划是为各种分支 存储库设置隐藏的签出目录 并使用这些文件
  • UITableView 中的实时搜索

    我已经实施了一个UI搜索栏用于查找其中的元素UI表格视图 一切似乎都工作正常 现在我需要对按下的每个键进行实时搜索文本域 并通过每按一次按钮来缩小搜索范围 因此 在开始编码之前 我想知道是否有任何内置库函数可以帮助我进行实时搜索 字符串比较
  • 对点进行排序,使连续点之间的最小欧氏距离最大化

    给定 3D 笛卡尔空间中的一组点 我正在寻找一种算法来对这些点进行排序 使得minimal两个连续点之间的欧几里得距离将最大化 如果算法倾向于最大化average连续点之间的欧氏距离 Edit 我已经交叉发布了https cstheory
  • 如何在 Fauna DB 中创建索引以返回键值对中的排序数据

    我正在尝试创建一个索引 该索引返回带有键的对象中的排序数据 我的集合的默认索引返回如下内容 ref Ref Collection posts 251333584234742292 ts 1583632773120000 data title
  • 如何在 Objective-C 中定义和使用 ENUM?

    我在实现文件中声明了一个枚举 如下所示 并在接口中声明了该类型的变量作为 PlayerState thePlayerState 并在我的方法中使用了该变量 但我收到错误消息 指出它未声明 如何在我的方法中正确声明和使用 PlayerStat
  • java.nio.file 的替代方案

    我在这个项目中使用 Android Studio 2 3 1 和 jdk 1 8 我导入一个项目 它使用 java nio file Files 和 java nio file Paths Java 8 中不存在包 java nio fil
  • 如何使用 JHipster 和 Hibernate Envers

    我无法弄清楚如何使用 Hibernate Envers 和 JHipster 我使用 PostgreSQL 来存储数据 最新的 Jhipster 2 6 0 我刚刚生成了一个 JHipster 应用程序 没有任何修改 User 域类扩展了
  • shell whoami 不等于 php shell_exec whoami?

    在 shell 中 我执行简单的 whoami 操作 然后得到 geoff 这很好 因为这就是我 在 php 文件中 我有 shell exec whoami 我没有得到任何人 在我看来 这似乎是一个差异 可以解释我最初的问题 imagem
  • PHP从3个变量中获取最大的数字[重复]

    这个问题在这里已经有答案了 可能的重复 返回具有最高值的变量 https stackoverflow com questions 5737305 return variable with the highest value 我试图想出一种简
  • Rails - 如何“合并”或将值附加到 URL 内的数组?

    我正在尝试在 URL 中传递一个数组 该数组工作正常 但我想知道如何插入或删除某些值 例如 我有一个链接 如下所示 http localhost 3000 pins genre ids 1 2 3 我想构建一组可以在此 URL 数组中插入或
  • 在 ASP.NET 内部运行 ASP.NET MVC 时,会话为 NULL

    如果我创建一个 ASP NET Web 应用程序项目 然后使用像这样定义的默认路由向其添加 ASP NET MVC 2 routes MapRoute Default Route name controller action id URL
  • 使用 JS 检测 MacOS、iOS、Windows、Android 和 Linux 操作系统 [重复]

    这个问题在这里已经有答案了 如何使用 JavaScript 检测 MacOS X iOS Windows Android 和 Linux 操作系统 我学到了很多关于window navigator对象及其属性 platform appVer
  • 客户端 JavaScript 应用程序和服务器端 HTTP API 之间的身份验证?

    我已经构建了一些通过 HTTP 工作的服务器端 API 仅适用于我的客户端应用程序 那么 是否可以在客户端和服务器端之间对应用程序进行身份验证 以及如何做 有两种选择 Sessions HTTP认证 会话背后的想法是 服务器向客户端发送一个
  • 使用 MS Graph API C# 读取用户电子邮件

    我正在尝试使用 MS Graph API 读取特定邮箱中的电子邮件 var client await GetClient getting a client with client id secret var users await clie
  • ASP.Net 转发器 item.DataItem 为 null

    在网页中 加载时 我用两个表填充数据集以及这些表之间的关系 然后将数据加载到具有嵌套转发器的转发器中 用户单击按钮后也可能发生这种情况 数据从 SQL 数据库加载 转发器数据源设置为回发后的数据集 但是 当 ItemDataBound 发生
  • 甲骨文。在两个过程中重用游标作为参数

    让我们创建两个测试程序 CREATE OR REPLACE PROCEDURE Aaaa Test1 pDog SYS REFCURSOR IS TYPE tDogRec is record objid varchar2 7 lim num
  • 布局类似于放射状菜单

    我必须设计这样的东西并为每个块添加点击事件 我应该如何继续 任何人都可以指导我吗 我知道现在回复已经太晚了 但这适用于那些现在在项目中需要此类功能的开发人员 看看这个演示项目github https github com beaucolli
  • 如何拒绝来自 iframe 的网站访问?

    我注意到一些网站出于安全原因拒绝从 iFrame 访问其注册和登录页面 我认为这是个好主意 我想知道他们需要什么设置才能做到这一点 因为我想在我的网站上做同样的事情 该网站是用 Java 构建的 并在 Apache Tomcat 上运行 如