Web安全漏洞解决方案
1.已解密的登录请求


1.1.1 产生的原因
登录接口,前端传入的密码参数没有经过md5的加密就直接传给了后端
1.1.2 解决方法
前端代码传参的时候做md5加密处理

2.会话标识未更新


2.1.2 产生原因

3.“Content-Security-Policy”,“X-Content-Type-Options”,“X-Content-Type-Options”头缺失或不安全



3.1.1 产生原因
nginx.conf配置里没有添加对应的请求头
3.1.2 解决方法
nginx.conf里配置缺失的请求头

4.垂直越权
4.1.1 漏洞分析

1 @Target(ElementType.METHOD)
2 @Retention(RetentionPolicy.RUNTIME)
3 public @interface SecurityAuth {
4
5 /**
6 * 拥有权限的角色名
7 * @retuen
8 */
9 String roleName();
10 }
1 @Aspect
2 @Component
3 public class SecurityAspect {
4
5 @Autowired
6 private SysRoleUserService sysRoleUserService;
7
8 /**
9 * 自定义注解切点
10 */
11 @Pointcut("@annotation(com.broadu.modules.filter.SecurityAuth)")
12 public void annotationAspect(){}
13
14 /**
15 * 前置通知
16 */
17 @Around("annotationAspect()")
18 public Object doBefore(ProceedingJoinPoint joinPoint) throws Throwable {
19 // 拿到响应
20 HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
21 // 拿到当前登录用户
22 UserDetail user = SecurityUser.getUser();
23 if(null == user){
24 // 未登录
25 throw new RenException(ErrorCode.ACCOUNT_NOT_EXIST,"该用户不存在");
26 }
27 // 从切面织入点处通过反射机制获取织入点处的方法
28 MethodSignature signature = (MethodSignature) joinPoint.getSignature();
29 // 获取切入点所在的方法
30 Method method = signature.getMethod();
31 // 获取注解
32 SecurityAuth auth = method.getAnnotation(SecurityAuth.class);
33 // 获取该方法使用的角色
34 String roleNames = auth.roleName();
35 // 获取该用户的角色列表
36 if(ObjectUtil.notEqual(user.getSuperAdmin(),1)){
37 List<String> roleList = sysRoleUserService.getRoleNameList(user.getId());
38 List<String> list = new ArrayList<>();
39 if(null != roleList && roleList.size() > 0){
40 String[] roleName = roleNames.split(",");
41 for (String str : roleName) {
42 for (String s : roleList){
43 if(ObjectUtil.equal(str,s)){
44 list.add(s);
45 break;
46 }
47 }
48 }
49 if(list.size() == 0){
50 // 没有权限
51 throw new RenException(ErrorCode.ACCOUNT_NOT_PERMISSION,"该用户无权限访问");
52 }
53 }
54 }
55 // 有权限
56 return joinPoint.proceed();
57 }
58
59 }
1 @RestController
2 @Slf4j
3 @RequestMapping("/ftpConfiguration")
4 public class FtpConfigurationController {
5
6 @Autowired
7 FtpConfigurationService ftpConfigurationService;
8
9 @Autowired
10 FactorService factorService;
11
12 @SecurityAuth(roleName = "用户角色")
13 @GetMapping("/page")
14 @ApiOperation("统计报表")
15 public Result<PageData<FtpConfigurationDto>> page(@ApiIgnore @RequestParam Map<String, Object> params) {
16 PageData<FtpConfigurationDto> page = ftpConfigurationService.page(params);
17 List<FtpConfigurationDto> list = page.getList();
18 // 用户密码md5加密
19 list.forEach(item ->{
20 try {
21 item.setPassword(DigestUtils.md5Hex(item.getPassword()));
22 } catch (Exception e) {
23 log.info("加密异常信息:{}"+e.getMessage());
24 }
25 });
26 page.setList(list);
27 return new Result<PageData<FtpConfigurationDto>>().ok(page);
28 }




Web安全漏洞解决方案的更多相关文章
- Java WEB安全问题及解决方案
1.弱口令漏洞 解决方案:最好使用至少6位的数字.字母及特殊字符组合作为密码.数据库不要存储明文密码,应存储MD5加密后的密文,由于目前普通的MD5加密已经可以被破解,最好可以多重MD5加密. ...
- 针对需要使用T3协议的Weblogic2628漏洞解决方案
针对需要使用T3协议的Weblogic2628漏洞解决方案 前几天用户的服务器中检查到了Weblogic2628l漏洞,并且打过Oracle官方补丁后还是能检测到. 针对此问题,去网上查找了一些资料. ...
- 手把手让你实现开源企业级web高并发解决方案(lvs+heartbeat+varnish+nginx+eAccelerator+memcached)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://freeze.blog.51cto.com/1846439/677348 此文凝聚 ...
- Web安全漏洞深入分析及其安全编码
摘自:http://blog.nsfocus.net/web-vulnerability-analysis-coding-security/ 超全Web漏洞详解及其对应的安全编码规则,包括:SQL注入 ...
- 基于 burpsuite的web逻辑漏洞插件开发(来自JSRC安全小课堂,柏山师傅)
基于 burpsuite的web逻辑漏洞插件开发 BurpSuite 提供了插件开发接口,支持Java.Python.Ruby语言的扩展.虽然 BApp Store 上面已经提供了很多插件,其中也不乏 ...
- 【OWASP TOP10】2021年常见web安全漏洞TOP10排行
[2021]常见web安全漏洞TOP10排行 应用程序安全风险 攻击者可以通过应用程序中许多的不同的路径方式去危害企业业务.每种路径方法都代表了一种风险,这些风险都值得关注. 什么是 OWASP TO ...
- [web安全]Web应用漏洞攻击分析与防范
网站攻击主要分为以下几类: (1) sql注入攻击 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.它是利 ...
- 宣布发布 Windows Azure 导入/导出服务的预览版以及 Web 和移动解决方案场景的若干增强功能
客户评估基于云的存储解决方案时,面临的挑战之一是以经济高效.安全快速的方式从 Blob 存储区移进和移出大量数据.今天,我们很高兴地宣布发布 Windows Azure 导入/导出的预览版,这款新服务 ...
- 基于Web的漏洞利用
1.Nikto 基于Web的漏洞信息扫描 nikto 自动扫描web服务器上没有打补丁的软件,同时同时也检测驻留在服务器上的危险文件,nikto能够识别出特定的问题,检测服务器的配置问题, 检测某台主 ...
- Web安全测试解决方案
Web安全测试解决方案 介绍常见的Web安全风险,Web安全测试方法.测试基本理论和测试过程中的工具引入
随机推荐
- npm install报错node-sass@7.0.1 postinstall: `node scripts/build.js`
在控制台执行 即可 npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass
- 什么是DOM和BOM?
DOM:文档对象模型,描述了处理网页内容的方法和接口.最根本对象是document 由于DOM的操作对象是文档,所以DOM和浏览器没有直接关系 BOM:浏览器对象模型,描述了与浏览器进行交互的方法和接 ...
- 《最新出炉》系列初窥篇-Python+Playwright自动化测试-1-环境准备与搭建
1.简介 有很多人私信留言宏哥问能不能介绍一下Playwright这款自动化神器的相关知识,现在网上的资料太少了.其实在各大博客和公众号也看到过其相关的介绍和讲解.要不就是不全面.不系统,要不就是系统 ...
- 如何判断Keil MDK ARM中已经破解?如何判断Keil MDK ARM中已经安装了相应的器件库?如何判断CubeMX的器件库已经安装成功?
如何判断CubeMX的器件库已经安装成功?请对照下图 如何判断Keil MDK ARM中已经安装了相应的器件库?请看下图 如何判断CubeMX的器件库已经安装成功?请对照下图
- Raven2项目实战
前言 Raven 2是一个中级boot2root虚拟机.有四面旗帜需要捕捉.在多次入侵之后,Raven Security采取了额外措施来加固他们的网络服务器,以防止黑客进入.你还能入侵Raven吗? ...
- 尚医通-day12【token续期和就诊人管理】(内附源码)
页面预览 就诊人管理 就诊人列表 添加就诊人 查看就诊人 ![image-20230225060710 管理员系统用户管理 前面我们完成了用户登录.用户认证与就诊人管理,现在我们需要把这些信息在我们的 ...
- 前端 vue 自定义导航栏组件高度及返回箭头 自定义 tabbar 图标
前端vue自定义导航栏组件高度及返回箭头 自定义tabbar图标, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12986 效 ...
- 第二章 VM与Linux的安装
1. VMWare 安装 2. CentOS 安装 安装网址:https://blog.csdn.net/qq_41819965/article/details/11118 ...
- SQL Server 根据一个表数据修改另外一个表数据
今天在写代码的时候发现一个有趣的问题,同时也暴露了之前写的代码有问题,还好之前没有出现重复的情况,及时发现了这个问题,及时改了回来,不然就GG了 下面先上代码,再给大家解说一下 CREATE TABL ...
- 【序列化与反序列化】关于序列化与反序列化MessagePack的实践
在进行序列化操作之前,我们还对系统进行压测,通过jvisualvm分析cpu,线程,垃圾回收情况等:运用火焰图async-profiler分析系统性能,找出程序中占用CPU资源时间最长的代码块. 代码 ...