• 网络安全-记录web漏洞修复


    网络安全-记录web漏洞修复

    背景介绍

    最近政府部门都在组织网络系统安全检测,我们公司开发的某一个系统前端也被检出了漏洞,需要解决一下

    前端使用vue框架开发,使用nginx进行部署

    漏洞

    如图所示总共被扫描出了八个漏洞,其中两个中度危险

    image-20220705000341135

    解决问题

    CORS信任任意来源漏洞

    危害

    1. 可能造成用户信息被窃取,攻击者可以构造其他站点,通过跨域资源访问的形式,读取用户在本站点上的任意信息;

    2. 攻击者可以通过一连串的跨域资源访问请求,伪造用户的身份私自操作本站点的内容。

    修复

    漏洞未修复前,请求响应如下

    image-20220705001123067

    这里是由于我nginx配置了允许跨域请求,默认nginx是不允许

    错误配置如下

    server {
            listen 8071 ;
            listen [::]:8071 ;
    
             server_name test; # 这里是网站的域名
    
            location / {
          add_header 'Access-Control-Allow-Origin' $http_origin;
          add_header 'Access-Control-Allow-Credentials' 'true';
          add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
          add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
          add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
          if ($request_method = 'OPTIONS') {
            add_header 'Access-Control-Max-Age' 1728000;
            add_header 'Content-Type' 'text/plain; charset=utf-8';
            add_header 'Content-Length' 0;
            return 204;
          }
                    root E:/data/vue/zrzy; # /vue/dist/ 打包后的dist目录
                    try_files $uri $uri/ @router; # 指向下面的 @router否则会出现 404
                    index index.html index.htm;
            }
    
            # 对应上面的 @router,主要Vue请求并不是真实路径,无法找到文件,需要重定向到 index.html 中,然后交给路由处理
            location @router {
                rewrite ^.*$ /index.html last;
             }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    修改配置如下

    server {
            listen 8071 ;
            listen [::]:8071 ;
             server_name zrzyweb; # 这里是网站的域名
            location / {
                    root E:/data/vue/zrzy; # /vue/dist/ 打包后的dist目录
                    try_files $uri $uri/ @router; # 指向下面的 @router否则会出现 404
                    index index.html index.htm;
            }
    
            # 对应上面的 @router,主要Vue请求并不是真实路径,无法找到文件,需要重定向到 index.html 中,然后交给路由处理
            location @router {
                rewrite ^.*$ /index.html last;
             }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    修改后如下

    image-20220705003046490

    SourceMap文件泄露漏洞

    危害

    1. 可能导致网站源代码泄露
    2. 可能导致敏感信息泄露
    3. 可能导致攻击者得到更多信息,扩大攻击者的攻击面

    image-20220705002159882

    解决

    这是因为我们在vue打包的时候,没有关闭SourceMap,一般SourceMap是在开发的时候方便程序员调试。

    这里我们修改一下项目中的vue.config.js配置即可,添加 productionSourceMap: false。

    module.exports = {
        productionSourceMap: false,
        }
    
    • 1
    • 2
    • 3

    修改后如下,我们打包部署就看不见源码了,都是混淆过的

    image-20220705003212285

    Host头注入漏洞

    危害

    Host 头指的是 HTTP Header 中的 Host 项,在开发 WEB 应用时,为了方便的获得网站域名,开发人员可能会直接使用该值带入到应用上下文中,如果该值可以被攻击者控制,且 web server 没有对 host header 进行校验,则在部分攻击场景下可能导致用户信息泄露、XSS 等。

    image-20220705002924628

    解决

    在nginx的server中配置拦截策略,指定只有特定host才能访问

      set $flag 0;
        if ( $host = "192.168.1.249"){
           set $flag 1;
        }
        if ( $flag = 0){
           return 403;
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    HTTP响应头Server 泄露框架信息漏洞

    image-20220705003519352

    危害

    1. HTTP头部信息泄露,通常会导致网站的框架信息、编程语言、Web 容器等信息泄露

    2. 攻击者可以根据敏感信息对网站或服务器发起进一步攻击

    解决

    nginx的http中添加如下配置

     server_tokens off;
    
    • 1

    响应头漏洞

    危害

    Web 服务器对于 HTTP 请求的响应头中缺少 {{ detail.header_name }},这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。

    image-20220705003637768

    解决

    server中添加

            add_header X-Frame-Options DENY;
            add_header X-Content-Type-Options nosniff;
            add_header X-XSS-Protection 1;
    
    • 1
    • 2
    • 3

    image-20220705004058578

  • 相关阅读:
    nginx异常重启
    数据库实验报告(一)
    编译buildroot出错,这个怎么解决呢,感谢
    AVX图像算法优化系列一: 初步接触AVX。
    HttpContext.TraceIdentifier那严谨的设计
    Docker覆盖网络--初步了解
    SQL之exists、not exists
    Vue element-ui表格嵌进度条
    【实践篇】redis管道pipeline使用详解
    Dubbo+Zookeeper
  • 原文地址:https://blog.csdn.net/qq_36213352/article/details/125611457