记一次网安安全漏洞整改

这里网安使用的扫描软件是Acunetix,总共扫描出1个中等漏洞,2个低等漏洞,3个提示。

 

 1.Medium,Vulnerable Javascript library 易受攻击的javascript库

 

 解决,升级到最新版本即可。

2.Low, OPTIONS method is enabled 允许options类型请求方式

 

 解决方法:禁用不安全的http请求方式(SpringBoot)

import org.apache.catalina.Context;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatContextCustomizer;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Author: SimonHu
 * @Date: 2019/9/27 15:36
 * @Description:过滤不安全http方法
 */
@Configuration
public class CustomCORSConfiguration  {
    @Bean
    public EmbeddedServletContainerFactory servletContainer() {
        TomcatEmbeddedServletContainerFactory tomcatServletContainerFactory = new TomcatEmbeddedServletContainerFactory();
        tomcatServletContainerFactory.addContextCustomizers(new TomcatContextCustomizer(){
            
            @Override
            public void customize(Context context) {
                SecurityConstraint constraint = new SecurityConstraint();
                SecurityCollection collection = new SecurityCollection();
                //http方法
                collection.addMethod("PUT");
                collection.addMethod("DELETE");
                collection.addMethod("HEAD");
                collection.addMethod("OPTIONS");
                collection.addMethod("TRACE");
                //url匹配表达式
                collection.addPattern("/*");
                constraint.addCollection(collection);
                constraint.setAuthConstraint(true);
                context.addConstraint(constraint );
                //设置使用httpOnly
                context.setUseHttpOnly(true);
                
            }
        });
        return tomcatServletContainerFactory;
    }
}

Low, Cookie(s) without Secure flag set 没有设置安全标志的Cookie

HTTP设置cookie时,提供了2个属性,可以增强cookie的安全性,分别是secure属性和httpOnly属性。

secure属性可防止信息在传递的过程中被监听捕获后导致信息泄露,如果设置为true,可以限制只有通过https访问时,才会将浏览器保存的cookie传递到服务端,如果通过http访问,不会传递cookie。

httpOnly属性可以防止程序获取cookie,如果设置为true,通过js等将无法读取到cookie,能有效的防止XSS攻击

 

 

 

 解决方法(SpringBoot):

server:
  port: 
  contextPath: /
  session:
    cookie:
      http-only: true
      secure: true

3.Informational, Possible username or password disclosure 存在用户名和密码泄露的可能

 

Acunetix在扫码时会用正则匹配password,pwd等关键字来查看你js脚本中是否含有这些关键字。

解决办法:

                            var Twd = this.loginTwd;
                            var code=this.code;
                            var showCode = this.showCode;
                            var param ={'loginName':loginName,'Twd':Twd,'code':code,'showCode':showCode};
                            this.$http.post([[@{/user/login}]], param,{emulateJSON: true}).then(function (response) {

密码类型避免使用password,pwd关键字作为参数传给服务端。

最后再次扫描,发现没有任何漏洞提示:

 

posted @ 2019-09-29 15:35  748573200000  阅读(3756)  评论(0编辑  收藏  举报