Dec282021
38:WEB漏洞-反序列化之PHP&JAVA全解(下)
思维导图
Java中的API实现:
位置: Java.io.ObjectOutputStream java.io.ObjectInputStream
序列化: ObjectOutputStream类 –> writeObject()
注:该方法对参数指定的obj对象进行序列化,把字节序列写到一个目标输出流中
按Java的标准约定是给文件一个.ser扩展名
反序列化: ObjectInputStream类 –> readObject(...阅读全文
作者:绝缘体.. | 分类:git, go, hibernate, java, python, 后端框架, 开发工具, 编程语言 | 阅读: | 标签:git, go, hibernate, java, python
抢沙发
Dec272021
33:WEB漏洞-逻辑越权之水平垂直越权全解
思维导图
知识点
水平越权,垂直越权,未授权访问
解释,原理,检测,利用,防御等
水平越权:通过更换的某个ID之类的身份标识,从而使得A账号获取(修改,删除等)B账号的数据。
垂直越权:通过低权限身份的账号,发送高权限账号才能有的请求,获得其高权限的操作。
未授权访问:通过删除请求中的认证信息后重放该请求,依旧可以访问或者完成操作。
原理
1.前端安全造成:界面
...阅读全文
Dec272021
32:WEB漏洞-文件操作之文件下载读取全解
思维导图
知识点
文件下载,读取
原理,检测,利用,修复等
漏洞发现
从文件名,参数值,目录符号等
read.xxx?filename=
down.xxx?filename=
readfile.xxx?file=
downfile.xxx?file=
../ ..\ .\ ./ 等
%00 ? %23 %20 .等
&readpath= &filepath= &path= &inputfile= &url= &data= &readfile= &menu= META-INF= WEB-INF
1.文件被解析,则是...阅读全文
Dec172021
Redis缓存穿透、击穿、雪崩终极解决方案:从布隆过滤器到多级缓存架构设计实战
Redis缓存穿透、击穿、雪崩终极解决方案:从布隆过滤器到多级缓存架构设计实战
在现代高并发系统架构中,Redis 作为高性能的内存数据库,广泛应用于缓存层以提升系统响应速度、降低数据库负载。然而,随着业务复杂度的上升,Redis 缓存系统也面临诸多挑战,其中最典型的三大问题就是:缓存穿透、缓存击穿和缓存雪崩。这些问题若不妥善处理,可能导致数据库压力激增、服务响应延迟甚至系统...阅读全文
Dec162021
微服务架构下的分布式事务最佳实践:Seata、Saga、TCC模式深度对比与选型建议
微服务架构下的分布式事务最佳实践:Seata、Saga、TCC模式深度对比与选型建议
引言:微服务架构中的分布式事务挑战
随着企业数字化转型的深入,微服务架构已成为现代应用系统设计的主流范式。通过将大型单体应用拆分为多个独立部署、可独立扩展的服务模块,微服务带来了更高的灵活性、可维护性和技术异构性。然而,这种“按业务边界划分”的架构也引入了一个核心难题——分布式事务。
在传统...阅读全文
Dec152021
使用Spring Data JPA进行数据持久化
在现代的Web应用程序中,数据持久化是非常重要的一部分。Spring Data JPA是一种非常流行的Java持久化框架,它提供了一种简洁的方法来处理数据库操作,同时集成了Spring框架的便利性和易用性。
1. 引言
Spring Data JPA基于Java Persistence API(JPA)规范,它简化了开发者的工作,使得我们可以通过定义实体类和接口,而不是直接操作数据库来进行数据持久化。
在本文中,我们将介绍如何使...阅读全文
Dec142021
Spring Boot中整合Feign实现服务调用并发
Feign是一个声明式的Web服务客户端,它的目标是让Web服务客户端的编写变得更加简单。在Spring Boot中,我们可以很容易地使用Feign来实现服务调用。
什么是Feign
Feign是一个基于Java注解的HTTP客户端,它简化了像Ribbon、Eureka和Hystrix等相关库的使用。通过使用Feign,我们可以定义接口并通过注解来配置HTTP请求,Feign会根据这些注解自动构造出HTTP请求。
如何使用Feign
首先,在Sprin...阅读全文
Dec092021
使用Maven构建Java项目的依赖管理
Maven是一个开源的项目构建和依赖管理工具,它能够帮助开发者更方便地构建和管理Java项目的各种依赖关系。通过使用Maven,开发者可以更轻松地管理项目的依赖,降低项目构建的复杂度,提高开发效率和项目的可维护性。本博客将介绍Maven的基本概念和使用方法。
Maven的核心概念
Maven使用一组核心概念来管理项目依赖。以下是Maven的几个重要概念:
POM(Project Object Model):POM是Mav...阅读全文
Dec072021
Kotlin vs Java: Android开发对比
在Android开发领域,Kotlin和Java是两种主要的编程语言选择。虽然Java作为Android的主要语言已经存在了很长一段时间,但Kotlin作为其替代品也逐渐得到了广泛的认可和采用。本文将对Kotlin和Java在Android开发中进行对比,讨论它们各自的优缺点。
Kotlin开发
Kotlin是一种由JetBrains开发的静态类型编程语言,它可以与Java代码无缝地互操作。Kotlin拥有许多强大的特性,使得它在Android开...阅读全文
Dec022021
21:WEB漏洞-文件上传之后端黑白名单绕过
知识点
文件上传常见验证:后缀名,类型,文件头等
1.后缀名:黑名单,白名单
黑名单:明确不让上传的格式后缀,比如asp,php,jsp,aspx,cgi,war等,但是黑名单易被绕过,比如上传php5,Phtml等
白名单:明确可以上传的格式后缀,比如jpg,png,zip,rar,gif等,推荐白名单。
2.文件类型:MIME信息
content-type字段校验,可以通过抓包改包方式绕过
3.文件头:内容头信息
每种类型的文件都...阅读全文