X-Frame-Options:DENY 不适用于 spring boot REST API

X-Frame-Options: DENY is not working for spring boot REST API

我的项目有 ExtJs 作为前端,Spring boot 作为后端。 ExtJs 将调用 spring 启动,它将以 JSON 响应。我想在我的项目中防止 clickjacking 攻击。我有一个简单的 html 脚本,它只会在 iframe.If 中加载网站,该网站是在 iframe 中加载的,这意味着它不是 secure.I 添加了以下标志 X-Frame-Options: DENY and Content-Security-Policy: frame-ancestors 'none'; 在 spring 引导 REST API 响应中阻止 that.But 即便如此,它也不会阻止我的应用程序在 iframe 中加载。检查点击劫持是否可行的代码是

<html>
<head>
<title>Clickjack test page</title>
</head>
<body>
<p>Website is vulnerable to clickjacking!</p>
<iframe src="http://localhost:8000" width="1000" height="1000"></iframe>
</body>
</html>

`

这里,localhost:8000 指的是 extjs URL.I 研究并发现客户端验证以防止点击劫持不是那么有效。那么在我的项目中是否有任何选项可以防止点击劫持攻击

使用 'DENY' 选项阻止所有框架,或 'SAMEORIGN' 只允许在应用程序功能需要时由原始域进行框架。

旧版浏览器可能不支持 'XFRAME OPTIONS' header,需要基于 JavaScript 的点击劫持保护。有关基于 JavaScript 的保护的信息,请访问 https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Shee

X-Frame-Options:如果在响应 header 中可用,DENY 应该可以解决问题。默认浏览器设置不允许站点加载到 iframe 中。如果您可能更改了浏览器设置或有任何插件会禁用 iframe 选项,那么它将无法工作。您可以尝试使用其他浏览器或隐身模式

通过在 apache 服务器配置文件

中设置 Header always append X-Frame-Options DENY 解决了这个问题