遇到的网络安全漏洞合集

点击参考这个
来源:ojhg风暴中心SaaS云监测平台,ojhg明鉴远程安全评估系统,lymg

1、http慢速攻击

描述解决备注
Slow HTTP DOS是一种应用层拒绝服务攻击,主要针对HTTP协议,攻击的成本很低,并且能够消耗服务器端资源,占用客户端连接数,导致正常用户无法连接服务器。1.设置适当的超时时间(Apache默认启用了reqtimeout模块),规定请求头和请求体发送的时间以及频率 2.增加MaxClient(MaxRequestWorkers):增加最大连接数由于我用的是SpringBoot内嵌项目,这里再写一下相应的方法:解决方案:1 设置Tomcat / server.xml文件 connectiontimeout 值,默认20000ms,修改为3000ms(Tomcat 自身安全漏洞)2 在jsp上设置AJAX的全局timeout时间(默认为30000ms) $.ajaxSetup({timeout:3000});

2、NoXPermittedCrossDomainPolicies

描述解决备注
Web 服务器对于 HTTP 请求的响应头中缺少 X-Permitted-Cross-Domain-Policies,这将导致浏览器提供的安全特性失效。 当一些在线的 Web Flash 需要加载其他域的内容时,很多 Web 会通过设置一个 crossdomain.xml 文件的方式来控制其跨域方式。很有可能有些开发者并没有修改 crossdomain.xml 文件的权限,但是又有和跨域的 Flash 共享数据的需求,这时候可以通过设置 X-Permitted-Cross-Domain-Policies 头的方式来替代 crossdomain.xml 文件,其可选的值有: none master-only by-content-type by-ftp-filename all。Web 服务器对于 HTTP 请求的响应头中缺少 X-Permitted-Cross-Domain-Policies,这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。1)修改服务端程序,给 HTTP 响应头加上 X-Permitted-Cross-Domain-Policies 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader(“X-Permitted-Cross-Domain-Policies”, “value”) 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header(“X-Permitted-Cross-Domain-Policies: value”) 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader “X-Permitted-Cross-Domain-Policies”, “value” 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response[“X-Permitted-Cross-Domain-Policies”] = “value” 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers[“X-Permitted-Cross-Domain-Policies”] = “value”;2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 X-Permitted-Cross-Domain-Policies 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header X-Permitted-Cross-Domain-Policies value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add X-Permitted-Cross-Domain-Policies “value”。由于我是SpringBoot项目,这里再写一下相应的方法:在com.XXX.filter包下加一个全局的响应头过滤器,然后在启动类上加上:@ServletComponentScan(“com.XXX.filter”) ,下面贴出代码:
@Component
public class AddResponseHeaderFilter extends OncePerRequestFilter {

    @Override
    protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse,
                                    FilterChain filterChain) throws ServletException, IOException {
        httpServletResponse.addHeader("X-Frame-Options", "DENY");
        httpServletResponse.addHeader("Cache-Control", "no-cache, no-store, must-revalidate, max-age=0");
        httpServletResponse.addHeader("Cache-Control", "no-cache='set-cookie'");
        httpServletResponse.addHeader("Pragma", "no-cache");
        httpServletResponse.addHeader("X-Permitted-Cross-Domain-Policies", "none");
        httpServletResponse.addHeader("X-Download-Options", "DENY");
        String jSessionId=httpServletRequest.getSession().getId();
        httpServletResponse.setHeader("Set-Cookie", "JSESSIONID="+jSessionId+"; Secure;HttpOnly;");
        httpServletResponse.addHeader("Strict-Transport-Security","max-age=63072000; includeSubdomains; preload");
        filterChain.doFilter(httpServletRequest, httpServletResponse);
    }
}

3、会话Cookie中缺少secure属性

描述解决备注
在应用程序测试过程中,检测到所测试的Web应用程序设置了不含“secure”属性的会话cookie。由于此会话cookie不包含“secure”属性,所以用户可以通过未加密的http协议传输Cookie,可能造成用户信息被窃听。一般性的建议: [1]基本上,cookie的唯一必需属性是“name”字段,建议设置“secure”属性,以保证cookie的安全。在SpringBoot中解决的方案: 在上面的代码段中的httpServletResponse.setHeader(“Set-Cookie”, “JSESSIONID=”+jSessionId+"; Secure;HttpOnly;");就是,设置全局的responseHeader即可

4、HTTP Strict-Transport-Security缺失

描述解决备注
HTTP Strict Transport Security (通常简称为HSTS) 是一个安全功能,它告诉浏览器只能通过HTTPS访问当前资源, 禁止HTTP方式。HSTS的作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。服务器开启HSTS的方法是,当客户端通过HTTPS发出请求时,在服务器返回的超文本传输协议响应头中包含Strict-Transport-Security字段。非加密传输时设置的HSTS字段无效。建议如果不能确保永远提供HTTPS服务,不要启用HSTS以及HSTS Preload List。因为一旦HSTS生效,之前的老用户在maxage过期前都会重定向到HTTPS,造成网站不能正确访问。在上面的代码段中加入:httpServletResponse.addHeader(“Strict-Transport-Security”,“max-age=63072000; includeSubdomains; preload”);即可

s

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值