Web安全问题记录以及解决方案

一、检测到目标站点存在javascript框架库漏洞

服务器鉴权问题(Token)

当登录时,接口返回token作为所有接口登录的凭证,web端保存token,一般用cookie的方法。查资料发现这种保存方式存在漏洞。

错误:

import Cookies from 'js-cookie'
export function getToken () {
  return Cookies.get(TokenKey)
}

export function setToken (token) {
  return Cookies.set(TokenKey, token)
}

export function removeToken () {
  return Cookies.remove(TokenKey)
}

办法:

删除js-cookie重新打包就可以了。至于页面上的数据,全局查询cookie,存放在localstroge

// 存放数据
localStorage.setItem("key",value);
// 根据key获取数据
localStorage.getItem("key");
// 根据key删除数据
localStorage.removeItem("key");
// 清空localStorage
localStorage.clear();

jquery版本过低

分析:

Web安全-JQuery框架XSS漏洞浅析

http://www.zztongyun.com/article/jQuery%E4%BB%A3%E7%A0%81

https://jiuaidu.com/jianzhan/774195/

通过下列链接查看存在漏洞的jQuery版本:

http://research.insecurelabs.org/jquery/test/

通过下列链接查看漏洞详情:

https://bugs.jquery.com/ticket/11290

解决办法:

更新到最新版本,步骤如下:

1)升级版本:

其实这是最好与最简单的修复方式,由于旧版本的一些方法在新版本中可能已经被废弃,所以需要引入jquery-migrate来兼容。官方提供了两种jquery-migrate,可参考官网

将1.9之前的jQuery代码更新为jQuery 1.9到3.0。您可以在此处获取该版本:

Download the compressed, production jQuery Migrate 1.4.1

Download the uncompressed, development jQuery Migrate 1.4.1

使用Migrate1.x并升级到jQuery1.9或更高版本后,第二个版本将帮助您更新代码以在jQuery3.0或更高的版本上运行:

Download the compressed, production jQuery Migrate 3.4.0

Download the uncompressed, development jQuery Migrate 3.4.0

项目中

<script src="/js/jquery-3.6.3.min.js"></script>//最新版本代替旧版本
<script src="/js/jquery-migrate-3.4.0.min.js"></script>//帮助更新版本的migrate

2)隐藏版本号

这个方法其实挺苟的,就是让扫描器无法识别该js版本号,操作方法就是将jquery文件头部带版本号的注释删除,并将文件内的版本号删除。不想删的可以改成最新的版本号:3.5.1

3)重写js方法

重写一些方法,或者把低版本的对应的方法替换成高版本

猜你喜欢

转载自blog.csdn.net/weixin_51258044/article/details/128883382