自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

原创 Host头攻击

(也被称为HTTP Host头注入攻击)是一种Web安全漏洞,攻击者通过篡改HTTP请求中的Host头部字段来执行恶意操作。在HTTP协议中,Host头部字段用于指定请求所针对的域名,以便服务器能够正确地将请求路由到相应的Web应用程序。

2024-05-27 23:13:14 2164

原创 Host头攻击-使用加密和身份验证机制

在构建安全的Web服务器环境时,可以根据实际需求选择并组合使用上述安全工具和软件。例如,可以使用防火墙和WAF来保护网络和应用层的安全;使用IDS/IPS和漏洞扫描工具来检测潜在的安全威胁;使用日志管理和分析工具来监控和分析安全事件;使用加密和密钥管理工具来保护数据的机密性和完整性。这些工具和软件的组合使用可以大大提高Web服务器的安全性。

2024-05-27 23:03:45 592

原创 Host头攻击-使用反向代理服务器或负载均衡器来传递路由信息

在配置过程中,需要确保Nginx能够正确地处理HTTP请求,并将它们转发到正确的后端服务器上。在上面的示例中,Nginx监听80端口,并将所有请求转发到backend_servers定义的后端服务器组。在上面的示例中,upstream块已经定义了一个后端服务器组,Nginx会根据负载均衡策略(默认为轮询)将请求分发到这些服务器上。负载均衡器主要用于将客户端请求分发到多个后端服务器上,确保每个服务器都能处理适量的请求,从而提高系统的整体性能和可靠性。示例:使用Nginx作为反向代理和负载均衡器。

2024-05-27 23:02:16 473

原创 Host头攻击-使用安全的Web服务器配置

如果Tomcat的内置功能不足以满足你的需求,你可以编写自定义的过滤器来处理HTTP请求,并在其中验证Host头字段。这涉及到编写Java代码,并将其打包为WAR文件部署到Tomcat中。@Override// 初始化方法,可以在这里读取配置参数等@Override// 这里可以添加自定义的验证逻辑// 例如,检查hostHeader是否符合预期的格式或值// 如果Host头字段无效,可以返回错误响应或重定向到其他页面return;

2024-05-27 23:00:12 777

原创 Host头攻击-禁止空主机头请求

在上面的示例中,我们使用了if指令来检查$http_host变量(代表HTTP请求中的Host头字段的值)。如果$http_host的值为空,则Nginx将返回400 Bad Request错误,并拒绝处理该请求。在Nginx中,可以通过配置http块或server块来拒绝没有包含有效Host头字段的请求。

2024-05-27 20:29:47 304

原创 复制List从一个类型转变为另外一个类型

【代码】复制List从一个类型转变为另外一个类型。

2023-12-12 22:57:40 737

原创 From http://...-> FETCH_HEAD = [up to date] feature-assumeUnit -> origin/feature-assumeUnit Committe

打开命令行(Windows下为cmd,macOS和Linux下为terminal)。这个问题是因为Git无法自动检测到你的邮箱地址。如果你只想在当前仓库设置这些信息,可以省略。替换为你的实际邮箱地址,将。

2023-12-12 22:51:00 483

原创 复制时源数据中null值不复制到

例如有个对象要新增,后面的新增,我们希望判断一下是否有这个数据,如果有,则对上次提交的完善。那么用其他方式实现很麻烦,本身的BeanUtils.copyProperties也是不大支持。使用:BeanUtil.copyProperties(source, target, Boolean)

2023-12-12 22:47:46 576

原创 回文链表Java

如果链表长度为偶数,则直接从第二个指针的位置开始对链表进行反转;如果是奇数,则从第二指针的下一位进行链表反转。

2023-10-30 22:20:55 236

原创 连接数据库加密方式

找到上面的class路径,然后创建一个类,继承class=“”中的类重写其加载username和password,然后在方法中进行解密赋值,就可以正常连接了。如果没有xml这个配置类,可以使用继承PropertyPlaceholderConfiurer,然后在里面加载数据库配置文件信息,进行解密修改。其次更重要的来了然后再配置连接的xml文件中。

2023-10-30 14:21:58 138

原创 Every derived table must have its own alias

发生在myBatis-plus中,当我们使用两个表关联查询,获取其数据量有多少时,我们需要给派生表起一个表名。错误原因就是因为缺少这个a。

2023-10-26 15:34:18 52

原创 Error evaluating expression ‘officeId != null and 0fficeId != ‘‘‘. Cause: org.apache.ibatis.ognl.Exp

还有如果对象的某个属性是整数类型,最好定义其为Long,Integer包装类型,不要使用long,int。因为long,int不传值时,默认为0,所以需要使用其包装类。myBatis-plus中对用Long或者Integer数据做判空时,不能使用==""的形式,否则会出现上述错误。不用判断==""即可;

2023-10-26 14:36:58 231

原创 jQuery实现输入框提示并点击回显功能呢

【代码】jQuery实现输入框提示并点击回显功能呢。

2023-10-21 17:31:41 328

原创 Required MultipartFile parameter ‘file‘ is not present

模板上传

2023-10-19 22:06:36 1411

原创 相交链表Java

相交链表元素为:ListNode{val=3, node=ListNode{val=4, node=ListNode{val=5, node=null}}}相交链表元素为:ListNode{val=3, node=ListNode{val=4, node=ListNode{val=5, node=null}}}给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 nu11。

2023-10-12 22:24:14 194

原创 链表去重Java

去除链表中的重复元素为:ListNode{val=1, next=ListNode{val=2, next=ListNode{val=3, next=null}}}去除链表中的重复元素为:ListNode{val=1, next=ListNode{val=2, next=null}}

2023-10-09 21:34:11 201

原创 找出一个数组中未出现的数Java

给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1,n] 内。请你找出所有在[1,n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。找出一个数组中未出现的数:[5, 6, 0, 0, 0, 0, 0, 0]找出一个数组中未出现的数:[5, 6, 0, 0, 0, 0, 0, 0]

2023-10-07 22:25:06 241

原创 redis缓存穿透问题

缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。

2023-09-26 21:43:33 108

原创 缓存更新策略

2. 高一致性需求:主动更新,并以超时剔除作为兜底方案。1,低一致性需求:使用Redis自带的内存淘汰机制。

2023-09-26 21:42:05 895

原创 多tomcat中的session共享问题

session共享:多台tomcat中并不共享session存储空间,当请求切换到不同tomcat服务时会导致数据丢失问题.因此我们可以使用redis+token的方式来解决,redis基于内存,可以保证数据共享,且为k-v结构.

2023-09-26 21:25:44 157

原创 leetcode算法题-移动零Java

移动零:[1, 3, 12, 0, 0]

2023-09-26 21:15:56 129

原创 爬楼梯Java(斐波那契数列)

五阶楼梯有(1+1+1+1+1,1+1+1+2,1+2+2,1+2+1+1,1+1+2+1,2+1+1+1,2+2+1,2+1+2)八种方法,可以看出n阶楼梯是由(n-1) + (n-2)构成的,基数1阶为1,2阶为2.四阶楼梯有(1+1+1+1,1+2+1,1+1+2,2+2,2+1+1)五种方式。题目:有n阶楼梯,一次只能爬一层或者两层,请问有多少种方法?三阶楼梯有(1+1+1,1+2,2+1)三种方法。二阶楼梯有(1+1,2)两种方法。斐波那契数列结果为:89。斐波那契数列结果为:89。

2023-09-26 20:37:14 127

原创 田忌赛马Java

其实核心思想就是让A中的数最小且刚好大于B中数,我们可以用链表来存储A和B中对应的数据,至于B比A中所有的数都大的数据,则匹配我们A中剩余的数字即可(随意匹配即可).给定两个大小相等的数组 A 和 B,A 相对于 B 的优势可以用满足 Ai] > Bi] 的索的数目来描述。输出结果:田忌赛马结果是:[14, 11, 19, 9, 17, 13]返回 A的任意排列,使其相对于 B 的优势最大化.

2023-09-25 21:38:38 398

原创 ClassFormatException: File: ‘java/lang/CharSequence.class‘: Invalid byte tag in constant pool: 15

tomcat8以上的对应jdk1.8以上的,tomcat8以下对应jdk1.8以下的.还有可能是tomcat和jdk版本不匹配。

2023-09-21 22:39:05 151

原创 打家劫舍3(二叉树型)Java

在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额.

2023-09-21 22:22:22 113

原创 打家劫舍2(首尾相连)Java

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。注意这里的房屋是连接成一个⚪。

2023-09-21 22:18:03 66

原创 打家劫舍Java

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。这里房屋的排列是一条线。

2023-09-21 22:15:33 129

原创 参议院算法Java

以轮为基础的过程从给定顺序的第一个参议员开始到最后一个参议员结束。所有失去权利的参议员将在过程中被跳过。禁止一名参议员的权利:参议员可以让另一位参议员在这一轮和随后的几轮中丧失所有的权利。宣布胜利: 如果参议员发现有权利投票的参议员都是同一个阵营的,他可以宣布胜利并决定在游戏中的有关变化。现在参议院希望对一个 Dota2 游戏里的改变作出决定,他们以一个基于轮为过程的投票进行。假设每一位参议员都足够聪明,会为自己的政党做出最好的策略,你需要预测哪一方最终会宣布胜利并在 Dota2 游戏中决定改变。

2023-09-21 21:22:21 103

原创 井字游戏Java

【代码】井字游戏Java。

2023-09-11 22:03:57 82

原创 java中List转换String字符串几种方式

这里和StringUtils.join()有区别,参数顺序不一样,另外,StringUtils.join()可以传入Integer或者其他类型的集合或数组,而String.join()尽可以传入实现charSequence接口类型的集合或数组。StringUtils.join() 和 String.join()用途:将数组或集合以某拼接符拼接到一起形成新的字符串。此方法将列表转换为具有给定分隔符、前缀和后缀的字符串。如果是字符串类型的集合或数组推荐使用String.join()

2023-09-07 21:52:19 637

原创 jdk8合并list的方式

这是几种常用的合并两个List的方式。可以使用简单的addAll()方法,也可以使用更加强大的Stream API,选择方式主要根据两个List的元素类型和具体场景来决定。这种方式通过Stream的flatMap()先将两个List展开为元素流,再使用collect()收集到一个List,更加灵活。这也是一种简单的合并方式,同样要求两个List元素类型相同。这种方式简单直接,适用于两个List元素类型相同的场景。2. 使用Stream API的concat()方法。1. 使用addAll()方法。

2023-09-07 21:49:08 646

原创 不常用获取日期方法

虽然有些不常用,但是万一用到了呢。

2023-09-07 21:45:47 21

原创 香槟塔-算法

在倒第四杯后第三层中间的玻璃杯盛放了一半的香槟,他两边的玻璃杯各自盛放了四分之一的香槟。思路:往第一层杯子里面的倒入香槟,如果倒入一杯,则第一个杯子刚好满了,如果是两杯,则第一个杯子是满的,下一层的两个杯子分别为0.5杯,即当前杯子的水量=(父杯数-1)/2,如果当前杯数水量大于零,说明可能还会往下继续流,继续上面的操作即可;从顶层的第一个玻璃杯开始倾倒一些香槟,当顶层的杯子满了,任何溢出的香槟都会立刻等流量的流向左右两侧的玻璃杯。当左右两边的杯子也满了,就会等流量的流向它们左右两边的杯子,依次类推。

2023-09-07 21:36:49 46

原创 实体类中时间转换问题

调用时,会出现问题,可以使用@JsonFormat注解解决。数据库表结构设计时,时间类型设置为datetime。但是项目实体类中设置为Date。

2023-09-04 15:35:36 98

原创 省份数量(并查集)

有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市c间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市给你一个nxn 的矩阵 isConnected ,其中isConnected[i]li] =1表示第i个城市和第j个城市直接相连,而 isConnected[i]li] = 0表示二者不直接相连。返回矩阵中 省份 的数量.扩展:朋友圈问题,亲戚问题等。

2023-08-31 21:25:26 36

原创 省份数量:广度优先

有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市c间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市给你一个nxn 的矩阵 isConnected ,其中isConnected[i]li] =1表示第i个城市和第j个城市直接相连,而 isConnected[i]li] = 0表示二者不直接相连。返回矩阵中 省份 的数量.扩展:朋友圈问题,亲戚问题等。

2023-08-30 21:03:45 22

原创 省份数量:深度优先

有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市c间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市给你一个nxn 的矩阵 isConnected ,其中isConnected[i]li] =1表示第i个城市和第j个城市直接相连,而 isConnected[i]li] = 0表示二者不直接相连。返回矩阵中 省份 的数量.扩展:朋友圈问题,亲戚问题等。

2023-08-30 21:01:06 33

原创 二叉树层序遍历(迭代)

输出:1234567。

2023-08-29 21:45:10 21

原创 二叉树后序遍历(迭代)

输出:4675231。

2023-08-29 21:43:40 24

原创 二叉树中序遍历(迭代)

输出:4265713。

2023-08-29 21:41:58 24

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除