java怎么增加跨帧脚本编制,web安全

X-Frame-Options

存在" X-Frame-Options 响应头缺失 "问题,显示可能会造成跨帧脚本编制攻击

风险:攻击者可以使用一个透明的、不可见的iframe,覆盖在目标网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击iframe页面的一些功能性按钮上,导致被劫持。

X-Frame-Options:

值有三个:

(1)DENY:表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。

(2)SAMEORIGIN:表示该页面可以在相同域名页面的 frame 中展示。

(3)ALLOW-FROM https://example.com/:表示该页面可以在指定来源的 frame 中展示。

5.tomcat控制

tomcat/cnf/web.xml

通过tomcat控制最方便,不过实际配置过程中,版本过低的tomcat会启动不了,建议tomcat版本不要低于7.0.69 .

httpHeaderSecurity

org.apache.catalina.filters.HttpHeaderSecurityFilter

antiClickJackingOption

SAMEORIGIN

true

httpHeaderSecurity

/*

内容安全策略CSP(Content-Security-Policy)

https://blog.csdn.net/u014465934/article/details/84199171

https://blog.csdn.net/qq_41211900/article/details/79907460

内容安全策略(CSP),其核心思想十分简单:网站通过发送一个 CSP 头部,来告诉浏览器什么是被授权执行的与什么是需要被禁止的。其被誉为专门为解决XSS攻击而生的神器。

1.前言

内容安全策略 (CSP) 是一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本 (XSS) 和数据注入攻击等。无论是数据盗取、网站内容污染还是散发恶意软件,这些攻击都是主要的手段。

CSP 的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单。它的实现和执行全部由浏览器完成,开发者只需提供配置。

CSP 大大增强了网页的安全性。攻击者即使发现了漏洞,也没法注入脚本,除非还控制了一台列入了白名单的可信主机。

2.CSP作用

限制资源获取

报告资源获取越权

X-XSS-Protection

https://www.freebuf.com/articles/web/138769.html

顾名思义,这个响应头是用来防范XSS的。最早是在IE8,现在主流浏览器都支持,并且默认都开启了XSS保护,用这个header可以关闭它。它有几种配置:

浏览器提供的XSS保护机制并不完美,但是开启后仍然可以提升攻击难度,总之没有特别的理由,不要关闭它。

X-XSS-Protection: 0; (关闭XSS过滤)

X-XSS-Protection: 1; (启用XSS过滤,如果检测到跨站脚本攻击,浏览器将清除页面(删除不安全的部分))

X-XSS-Protection: 1; mode=block (启用XSS过滤。 如果检测到攻击,浏览器将不会清除页面,而是阻止页面加载)。1; report=(Chromium only) (启用XSS过滤。 如果检测到跨站脚本攻击,浏览器将清除页面并使用CSP report-uri指令的功能发送违规报告)。

http set-cookie

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Set-Cookie

https://www.antbaba.com/2018/09/14/%E5%85%B3%E4%BA%8Ehttp%E7%9B%B8%E5%BA%94%E4%B8%AD%E7%9A%84set-cookie/

只有客户端才能设置Cookie,服务端若想让客户端增加一个Cookie项,需要在应答时,在Http头部中,通过使用Set-Cookie,将要设置的Cookie项发送给客户端。这样客户端,在下次访问时,会带上该Cookie项。

Cookie相关的Http头

有 两个Http头部和Cookie有关:Set-Cookie和Cookie。

Set-Cookie由服务器发送,它包含在响应请求的头部中。它用于在客户端创建一个Cookie

Cookie头由客户端发送,包含在HTTP请求的头部中。注意,只有cookie的domain和path与请求的URL匹配才会发送这个cookie。

X-Content-Type-Options

https://blog.csdn.net/TivonaLH/article/details/86310298

功能:

互联网上的资源有各种类型,通常浏览器会根据响应头的Content-Type字段来分辨它们的类型。然而,有些资源的Content-Type是错的或者未定义。这时,某些浏览器会启用MIME-sniffing来猜测该资源的类型,解析内容并执行。X-Content-Type-Options告诉浏览器content-type是由自己定义的。

如果服务器发送响应头 "X-Content-Type-Options: nosniff",则 script 和 styleSheet 元素会拒绝包含错误的 MIME 类型的响应。这是一种安全功能,有助于防止基于 MIME 类型混淆的攻击。

简单理解为:通过设置"X-Content-Type-Options: nosniff"响应标头,对 script 和 styleSheet 在执行是通过MIME 类型来过滤掉不安全的文件

https://blog.csdn.net/u013310119/article/details/84861900

package com.zichen.xhkq.filter;

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.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class XFrameOptionsHeaderFilter implements Filter {

String address = "*";//默认的访问地址,目前没有限制地址,* 代替

public XFrameOptionsHeaderFilter() {

}

@Override

public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {

//必须

HttpServletRequest request = (HttpServletRequest) req;

HttpServletResponse response = (HttpServletResponse) resp;

//实际设置

/*X-Frame-Options 响应头有三个可选的值:

DENY:页面不能被嵌入到任何iframe或frame中;

SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中;

ALLOW-FROM:页面允许frame或frame加载。*/

response.setHeader("x-frame-options", "SAMEORIGIN"); //只允许嵌入本网站页面

response.setHeader("Content-Security-Policy", "default-src https: http: 'unsafe-inline' 'unsafe-eval';connect-src https: http:"); //针对safi和chrome

response.setHeader("Set-Cookie", "cookiename=value;Path=/;Domain=domainvalue;Max-Age=seconds;HTTPOnly");

chain.doFilter(req, resp);

}

@Override

public void destroy() {

// TODO Auto-generated method stub

}

@Override

public void init(FilterConfig arg0) throws ServletException {

// TODO Auto-generated method stub

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值