- 博客(40)
- 收藏
- 关注
原创 第十九天:HTTPS
第十九天:HTTPSHTTPS(HyperText Transfer Protocol Secure),译为:超文本传输安全协议常称为HTTP over TLS、HTTP over SSL、HTTP Secure由网景公司于1994年首次提出HTTPS与HTTP的区别HTTPS默认端口是443SSL/TLSHTTPS是在HTTP的基础上使用SSL/TLS来加密报文,对窃听和中间人攻击提供合理的防护TLS (Transport Layer Security),译为:传输层安全性协议前身是
2022-03-18 16:05:01
651
原创 nmap常用爆破命令
nmap常用爆破命令nmap -p 445 –script smb-brute.nse –script-args userdb=./user.txt,passdb=./pass.txt 192.168.30.128nmap -p 21 -sT –script ftp-brute.nse –script-args userdb=./user.txt,passdb=./pass.txt 192.168.30.128nmap -p 23 –script telnet-brute.nse –scrip.
2022-03-18 10:28:25
1181
原创 第十八天:对称加密-非对称加密-数字签名-证书
第十八天:对称加密-非对称加密-数字签名-证书对称加密对称密码中,加密用的密钥和解密用的密钥是相同的如何解密DES加密DES是一种将64bit明文加密成64bit密文的对称加密算法,密钥长度是56bit规格上来说,密钥长度是64bit,但每隔7bit会设置一个用于错误检查的bit,因此密钥长度实质上是56bit由于DES每次只能加密64bit的数据,遇到比较大的数据,需要对DES加密进行迭代((反复)目前已经可以在短时间内被破解,所以不建议使用3DES加密3DES,将DES重复3次
2021-11-22 08:12:56
3221
原创 第十七天:代理服务器-CDN-网络安全
第十七天:代理服务器-CDN-网络安全代理服务器(Proxy Server)特点本身不生产内容处于中间位置转发上下游的请求和响应面向下游的客户端:它是服务器面向上游的服务器:它是客户端正向代理:代理的对象是客户端为客服端工作作用:隐藏客户端身份绕过防火墙(突破访问限制)Internet访问控制在路由器上设置,哪些能上网,哪些不能上网数据过滤由于都经过了代理服务器,所以他就可以过滤数据一些免费的正向代理https://ip.jiangxia
2021-11-22 08:12:23
1237
原创 第十六天:跨域-cookie-session
第十六天:跨域-cookie-session跨域这是个安全策略,只能我允许的域名才能访问前后端分离通过这样的方式后,我们的项目打不开,前端解析会出现问题,这就是跨域的问题同源策略浏览器有个同源策略(Same-Origin Policy)它规定了:默认情况下,AJAX请求只能发送给同源的URL同源是指3个相同:协议、域名(IP)、端口但是img vidio等图片不受同源策略的影响所以我们俩不同源,所以访问不到数据当我们通过这样的方式去访问时,就是跨域访问,我们怎么去解决这个问题
2021-11-22 08:11:47
310
原创 第十五天:状态码-from提交
第十五天:状态码-from提交状态码状态码指示HTTP请求是否已成功完成状态码的分类信息响应:100~199成功响应:200~299重定向:300~399客户端错误:400~499服务器错误:500~599常见的状态码100 Continue请求的初始部分已经被服务器收到,并且没有被服务器拒绝。客户端应该继续发送剩余的请求,如果请求已经完成,就忽略这个响应允许客户端发送带请求体的请求前,判断服务器是否愿意接收请求(服务器通过请求头判断)在某些情况下,如果服务器在不看请
2021-11-22 08:11:11
198
原创 第十三天:ABNF-请求头-响应头
第十三天:ABNF-请求头-响应头启动hello工程,打开抓包工具,监听8080端口,查看抓包数据可以看到他的整个数据我们打开请求报文,可以看到相关数据,但是这样的数据是不严谨的,怎样才是严谨的?ABNFABNF (Augmented BNF)是BNF (Backus-Naur Form,译为:巴科斯瑙尔范式)的修改、增强版在RFC 5234中表明: ABNF用作internet中通信协议的定义语言ABNF是最严谨的HTTP报文格式描述形式,脱离ABNF谈论HTTP报文格式,往往都是片面
2021-11-22 08:10:40
312
原创 第十四天:DNS-DHCP-HTTP
DNS-DHCP-HTTPDNSDNS的全称是: Domain Name System,译为:域名系统利用DNS协议,可以将域名(比如baidu.com) 解析成对应的IP地址(比如220.181.38.148)DNS可以基于UDP协议,也可以基于TCP协议,服务器占用53端口当我们找example.microsoft.com时候,首先会找根服务器,然后再找顶级域名服务器,再找二级名称服务器再找到权威名称服务器。最终找到这个域名客户端首先会访问最近的一台DNS服务器(也就是客户端自己配置的DN
2021-11-22 08:10:08
303
原创 第十二天:socket域名
socket域名补充1.我们常常提到的长连接和短连接是如何区分的?以socket为例,如果建立连接后我立刻close就叫短连接。等一段时间后再close算长连接。是这样区分的吗?如何区分创建一次连接后,进行数据交互后马上断开连接就是短链接长连接就是一启动客服端就连接服务,建立连接后会一直连接,不会断开假设建立连接之后,没有断开连接。这里服务器受影响的硬件是不是主要是网卡。对网卡没有任何影响,网卡只是负责接收数据。但是会对内存有影响,因为socket会保存内存中。那具体会影响
2021-11-22 08:09:36
1266
原创 第十一天:TCP—释放连接
TCP—释放连接四次挥手状态解读FIN-WAIT-1:表示想主动关闭连接向对方发送FIN报文,此时进入FIN-WAIT-1状态CLOSE-WAIT:表示在等待关闭当对方发送FIN给自己,自己会回应ACK报文给对方,此时则进入CLOSE-WAIT状态在这个状态下,需要考虑自己是否还有数据要发送给对方,如果没有,发送FIN报文给对方FIN-WAIT-2:只要对方发送ACK确认后,主动就会处于FIN-WAIT-2状态,然后等待对方发送FIN报文CLOSING:一种比较罕见的例外状态
2021-11-22 08:09:03
2333
原创 第十天:TCP序号_确认号 建立连接
第十天:TCP序号_确认号 建立连接在建立HTTP请求之前需要经历三次连接 这就是三次握手,我主动发送数据包给你,我想和你建立连接,然后服务器也给我一个回复,ACK就是回应,然后我再向你发送一次建立请求,通过后就开始传送数据。就像上图一样,值得注意的是,SYN(同步)只有前两次都是1,其余都是0执行完三次握手后,就会发送HTTP请求当所有数据完成后,就会发送200,表明服务器发送完成序号知道你的序号和长度,那么我返回的长度就是ACK:序号+数据长度假设每发一个包,服务
2021-11-22 08:08:32
618
原创 第九天:TCP流量控制-拥塞控制
回顾如果一个包重传了N次还是失败,会一直持续重传到成功吗?这个取决于系统的设置,比如有些系统,重传5次还未成功就会发送RESET报文,断开TCP连接如果接收窗口最多能接收四个包,但是发送方只发了两个包,接收方如何确定后面还有没有包呢?服务端会等待,等待一定时间后确认没有第三个包,就发送确认收到两个包的信息为什么选择再传输层将数据大卸八块,而不是等到网络层再分片传递给数据链路层?因为可以提高重传的性能。需要明确的是:可靠传输在传输层进行控制的如果在传输层不分段,一旦出现数据丢失
2021-11-22 08:08:06
3305
原创 第八天:TCP—可靠传输
第八天:TCP—可靠传输数据格式20个字节的固定首部数据偏移:占四位,乘以四就是首部的长度,取值范围0x101—0x1111,20—60,和UDP一样保留:占6位,暂时没有什么用,全为0序号:占四个字节,首先,传输的每一个字节都有一个编号,而且连续的字节编号都是连续的,在建立连接后,序号:代表这一次传给对方的TCP数据部分的第一个字节的编号确认号:占四个字节,在建立连接后,确认号代表期望下一次传过来的TCP数据部分的第一个字节编号**窗口:**占两个字节,这个字段有流量控制功能,用以告知对
2021-11-21 22:29:15
713
原创 第七天:网络层
第七天:网络层直接工作在网络层协议ARP ICMP IP网络层数据包(IP数据包 package)至少需要20个字节,可变部分存在数据部分版本部分 就是说他是什么ip版本,ipv4或者IPV6首部长度占四位:二进制乘以4才是最终长度0b0101:20(最小值)0b1111:60(最大值)可变部分最大字节就是40个字节区分服务(占8位)可以提高网络服务质量。在我们这里,可以看到区分服务的值是0,假如这里是存在一个值,64,那么我们就可以在路由器中设置,只要我的区分服务字段是6
2021-11-21 22:28:45
542
原创 第六天:物理层_数据链路层
第六天:物理层_数据链路层第一个包为什么会丢失第一次的传输过程中,计算机0向路由器发送ARP协议,知道路由器的mac地址后,计算机0正式向路由器发送icmp协议,但是呢,当数据包到达路由器后,由于路由器忙不过来,就会放弃这个数据包的内容,于是路由器向计算机1发送ARP协议,获取计算机1的mac地址,知道计算机1的mac地址后,开始正式通过icmp协议发送数据网络互连模型为了更好的促进互联网的研究和发展,国际标准化组织ISO再1985年制定了网络互连模型OSI参考模型共7层结果请求过程在
2021-11-21 22:28:13
386
原创 第五天:局域网
第五天:局域网数据包的传输过程简述:MA代表mac地址数据包发送时的简要变化A计算机到路由器0的数据包从A发出去的数据包先来到路由器M0,因为它不知道F计算机的MAC地址,只能先在同一个网段发送ARP协议,找到对应的路由器MAC地址,即M0当数据包到达路由器0时,路由器会查相关的路由表,找到下一条的IP,然后修改数据包,即当数据包到达路由器1时,同理,查找路由表,找到对应下一跳地址从头到尾,源IP和目标IP是没有变化的,变化的是源MAC和目标MAC相关概念网络
2021-11-21 22:27:32
262
原创 第四天:超网-静态路由
第四天:超网-静态路由变长子网划分如果一个子网地址块的长度是原网段的(1/2)^n子网的子网掩码,就是在原网段的子网掩码的基础上+n个1不等长的子网,他们的子网掩码也不同假设对192.168.0.0/24进行变长子网划分举个例子 我们的A网段需要占我们原来网段的1/2,那么他的子网掩码就需要再向右移动一位,也就是25位,而B类网段是原来的1/4,也就是2*1/2,所以就是向右移动2位,以此类推出A、D、E的子网掩码,计算出他们的子网掩码C:255.255.255.128/25B:255
2021-11-21 22:27:00
912
原创 第三天:MAC地址-IP地址-子网掩码
第三天:MAC地址-IP地址-子网掩码路由器可以在不同网段之间转发数据可以隔绝广播域主机在发送数据之前,首先会判断目标主机的IP地址跟它是否在同一个网段在同一个网段:ARP、通过交换机\集线器传递数据不在同一网段:通过路由器转发数据计算机之间的连接方式—路由器具体过程1PC传递数据到4PC1发送通过ARP广播寻找路由器5的MAC地址找到5的MAC地址后,通过6发送ARP协议发送广播到右边,寻找4的Mac地址找到4后,由4在发送广播回传给11和4实现通信MAC地址每一
2021-11-21 22:26:33
2046
原创 第二天:交换机-网桥-交换机
第二天:交换机-网桥-交换机tomcat部署已有基础,已经部署登录模块使用serverlet时,需要引用tomcat,就可以使用它了就可以开发serverlet了LoginServerlet.class处理登录请求1、继承HttpServlet2、使用@WebServerlet,说明他要处理的请求路径计算机之间的通信基础在通信过程中需要知道IP地址,但是还不够,还需要网卡,我们发过来的数据首先先经过网卡,所以还需要网卡地址,在平时会帮你自动解析网卡地址,不需要你自己解析,
2021-11-21 22:25:52
978
原创 计算机网络-基础概念
01基础概念学习中需要搭建的环境客服端-服务器开发环境服务端:Java客服端:浏览器网络抓包浏览器、fiddler,wireshark模拟工具xshell客服端-服务器开发环境C\C++跨平台原理我只需要写一份代码,就可以到多个系统运行,但是需要编译多次但是需要不同的编译环境去编译,与当时嵌入式一个道理。原理:使用平台相关的编译器生成对应平台的可执行文件Java跨平台原理通过编译后生成字节码文件.class文件,由JVM加载字节码文件,jvm解析字节码文件,
2021-10-30 17:13:36
130
原创 文件上传绕过waf
文件上传绕过wafsafedog 绕过方式上传参数解析:明确哪些东西能修改?content-disposition:一般可更改,就是表单数据name:表单参数值,不能更改这个值是固定的,不能更改的,这个是和后端绑定的filename:文件名不能更改这个是最关键的 它包含了文件的后缀名content-type:文件MIME,视情况更改,这是一个绕过条件,我们可以根据它进行绕过,如果对方不是这个绕过条件,就没有意义了常见绕过方法数据溢出-防匹配(xxx…)把数据搞多一点 数
2021-08-24 09:37:37
615
原创 REC代码及命令执行代码全解
第30天—REC代码及命令执行代码全解 在Web应用中有时候程序员为了考虑灵活性、简洁性,会在代码调用代码或命令执行函数去处理。比如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞。同样调用系统命令处理,将造成命令执行漏洞。代码执行代码执行的危害执行脚本代码 脚本能干嘛 它就能干嘛案例(PHP环境)假设对方存在这样的一个代码执行漏洞 就可以用代码去攻击它通过evel去上传一个webshell,然后去控制它<?
2021-08-17 12:43:16
1752
原创 1544. 整理字符串
题目一个整理好的字符串中,两个相邻字符 s[i] 和 s[i+1],其中 0<= i <= s.length-2 ,要满足如下条件:若 s[i] 是小写字符,则 s[i+1] 不可以是相同的大写字符。若 s[i] 是大写字符,则 s[i+1] 不可以是相同的小写字符。请你将字符串整理好,每次你都可以从字符串中选出满足上述条件的 两个相邻 字符并删除,直到字符串整理好为止。请返回整理好的 字符串 。题目保证在给出的约束条件下,测试样例对应的答案是唯一的。注意:空字符串也属于整理
2021-05-09 21:31:39
186
原创 1598. 文件夹操作日志搜集器
题目描述下面给出对变更操作的说明:"../" :移动到当前文件夹的父文件夹。如果已经在主文件夹下,则 继续停留在当前文件夹 。"./" :继续停留在当前文件夹。"x/" :移动到名为 x 的子文件夹中。题目数据 保证总是存在文件夹 x 。给你一个字符串列表 logs ,其中 logs[i] 是用户在 ith 步执行的操作。文件系统启动时位于主文件夹,然后执行 logs 中的操作。执行完所有变更文件夹操作后,请你找出 返回主文件夹所需的最小步数 测试用例1输入:logs.
2021-05-07 21:15:21
129
原创 447. 回旋镖的数量
结题思路用哈希表记录每个点到其他点的距离,每个距离相同的点个数为val外层的for循环遍历所有点,作为回旋镖的第一个点,内层循环遍历所有点,计算回旋镖的第一个点和其他点的距离,并记录到哈希表中遍历哈希表,从val个距离相同的点中选2个点,作为回旋镖的后两个点,共有val* (val - 1)种情况代码class Solution { public int numberOfBoomerangs(int[][] points) { int res=0; ...
2021-05-06 18:08:01
111
原创 有效的数独
题目代码class Solution { public boolean isValidSudoku(char[][] board) { boolean flag=true; HashMap<Character,Character> map =new HashMap<Character,Character>(); for(int i=0;i<board.length;i++){ for(.
2021-04-30 14:01:32
80
原创 单词频率
题目连着刷了好几天的hashmap,终于是有点起色,力扣中等题目,10分钟写完,哈哈哈哈class WordsFrequency { private HashMap<String,Integer> map = new HashMap<String,Integer>() ; public WordsFrequency(String[] book) { for(String s:book){ if(map.contain.
2021-04-28 16:38:45
129
原创 剑指 Offer 48. 最长不含重复字符的子字符串
方法一:动态规划 + 哈希表1. 哈希表统计: 遍历字符串 ss 时,使用哈希表(记为 dicdic )统计 各字符最后一次出现的索引位置 。左边界 ii 获取方式: 遍历到 s[j]s[j] 时,可通过访问哈希表 dic[s[j]]dic[s[j]] 获取最近的相同字符的索引 ii 。2. 复杂度分析: 时间复杂度 O(N)O(N) : 其中 NN 为字符串长度,动态规划需遍历计算 dpdp 列表。空间复杂度 O(1)O(1) : 字符的 ASCII 码范围为 00 ~ 127127 ,哈希表
2021-04-27 13:31:08
121
原创 剑指 Offer 50. 第一个只出现一次的字符
剑指 Offer 50. 第一个只出现一次的字符描述在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。第一次自己尝试,无脑双重循环,憨的一批 public char firstUniqChar(String s) { int cout=0; // 拿出一个比较的字符 for(int i=0;i<s.length();i++){ //依次每个遍历,如何重合 cout++
2021-04-26 19:54:23
91
原创 希尔排序
动画演示文字说明代码 /** * 希尔排序 * * @param nums * @return */ public static int[] paiXu2(int[] nums) { int temp = 0;// 控制希尔排序的增量 for (int i = nums.length / 2; i > 0; i = i / 2) {//根据增量序列,找到每组比较序列的最后一.
2021-04-26 08:41:29
68
原创 插入排序
插入排序代码 /** * 插入排序 * @param nums * @return */ public static int[] paiXu1(int[] nums){ for (int i=0;i<nums.length-1;i++){ int j=i; int temp=0; while (nums[j+1]<nums[j]){ .
2021-04-25 20:50:01
68
原创 290. 单词规律
题目描述给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。示例思路通过创建两个HashMap Map<Character,String> map=new HashMap(); Map<String,Character> map1=new HashMap();去循环一个初始的字符数组,比较两个.
2021-04-25 18:34:35
72
原创 指offer——割绳子
????指offer——割绳子动态规划 /** *割绳子 * @param length 绳子长度 */ public static int max(int length){ if(length==1){ return 0; } if(length==2) { return 1; } if(length==3){
2021-04-18 16:46:22
83
原创 旋转数组的最小值求解
分析题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序数组,输出旋转数组的最小元素例:{3,4,5,1,2}为{1,2,3,4,5}的一个旋转常规思路,暴力破解,循环遍历,虽说能算出答案,题目中的旋转数组这个条件没有用到,不足以拿到offer正解: /** * 求旋转数组的最小值 * * @param arr */ public static int query(int[] arr) {
2021-04-18 14:18:56
108
原创 快速排序
/** * 快速排序 * * @param arr 数组地址 * @param left=左边 * @param right=右边 */ public static void sort(int[] arr, int left, int right) { if (right < left) { return; } int l = left; .
2021-04-18 13:58:33
51
原创 MyBatis-Spring-SpringMVC整合
MyBatis-Spring-SpringMVC整合有问题可以加群讨论:910883723首先建好和我项目一样的包名和类名框架树状图编写配置文件这里没有什么需要特别注意的,不要忘记build标签就可以,全部复制就行pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www
2021-04-04 20:38:56
107
原创 SpingMVC项目搭建
SpingMVC项目搭建 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。首先 我们先看一下项目的结构接下来编写配置文件 web.xml、spring-servlet.xml pom.xml spring-servlet.xmlweb.xml
2021-04-02 13:37:03
202
2
原创 Mybatis整合Spring
Mybatis整合Spring什么是 MyBatis-Spring?MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataAccessException。 最终,可以做到应用代码不依赖于 MyBatis,Spring 或 MyBatis-Spring。动机S
2021-03-31 19:43:27
150
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人