<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Avril_High的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Avril_High</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Avril_High]]></copyright><item><title><![CDATA[网络基础知识（设备-网络-解决方案）]]></title><link>https://blog.youkuaiyun.com/Avril_High/article/details/119909679</link><guid>https://blog.youkuaiyun.com/Avril_High/article/details/119909679</guid><author>Avril_High</author><pubDate>Wed, 25 Aug 2021 16:33:07 +0800</pubDate><description><![CDATA[设备
			
			
			
		网线
			　
			连接两个电脑
			物理层
		中继器
			Repeater
			放大网线上的信号
			物理层
		集线器
			Hub
			中继器+转发器，一对多，A电脑的信号泛洪到B和C
			物理层
		网桥
			Bridge
			智能集线器，多对多，基于MAC地址，A电脑的信号指定传输到B电脑，不给C电脑
			　
		交换机
			Switch
			高性能的Bridge
			数据层，网络层
		路由器
			Router
			连接网络和网络]]></description><category></category></item><item><title><![CDATA[安全笔记：SQL注入]]></title><link>https://blog.youkuaiyun.com/Avril_High/article/details/107798905</link><guid>https://blog.youkuaiyun.com/Avril_High/article/details/107798905</guid><author>Avril_High</author><pubDate>Tue, 04 Aug 2020 21:16:19 +0800</pubDate><description><![CDATA[攻击者目标：
找到下发请求中涉及使用输入参数直接构造SQL的场景（不一定是界面输入，可能是隐藏的参数，不要求是执行语句，查询语句也存在SQL注入），
1.这个参数：没有做参数预编译PreparedStatement，预编译后参数是’参数值’来拼接的，否则会直接拼接SQL。当我们输入不同的非法值（比如1=1,1=2）,返回的响应值不同，则很有可能为注入点。当前大部分系统对select参数都会做预编译，但是order by 和limit后跟的参数是无法预编译，是常见注入点。
2.查看响应消息和后台日志中是否有数]]></description><category></category></item><item><title><![CDATA[安全笔记：算法、密钥和认证]]></title><link>https://blog.youkuaiyun.com/Avril_High/article/details/107641390</link><guid>https://blog.youkuaiyun.com/Avril_High/article/details/107641390</guid><author>Avril_High</author><pubDate>Tue, 28 Jul 2020 17:49:03 +0800</pubDate><description><![CDATA[安全
不安全




Hash算法
单向算法，涉及盐值，不涉及密钥。用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值，却不能通过这个Hash值重新获得目标信息。HASH算法加密的数据是无法解密的，所以无法用来传输需要解密才能使用的内容，主要用于信息完整性校验。




非对称加密
公钥：n1=p*k;私钥：n2=(p-1)(k-1)；算法特质：仅凭n1无法猜出p和k，特别当n1位数特别大的时候。N1和明文经过算法运算得到密文；N2和密文经过算法运算得到明文。




对称加密...]]></description><category></category></item><item><title><![CDATA[安全笔记：消息头]]></title><link>https://blog.youkuaiyun.com/Avril_High/article/details/107641221</link><guid>https://blog.youkuaiyun.com/Avril_High/article/details/107641221</guid><author>Avril_High</author><pubDate>Tue, 28 Jul 2020 17:35:00 +0800</pubDate><description><![CDATA[X-Forwarded-For 和 X-Real-IP 和 Remote Address
如果一个 HTTP 请求到达服务器之前，经过了三个代理 Proxy1、Proxy2、Proxy3，IP 分别为 IP1、IP2、IP3，用户真实 IP 为 IP0。属于标准且不需要自行赋值：Remote Address获取到的是IP3，属于标准但依靠代理自行赋值：X-Forwarded-For: IP0, IP1, IP2；不属于标准：X-Real-IP。
防御方法：
1.直接对外提供服务的 Web 应用，在进行与安全]]></description><category></category></item><item><title><![CDATA[安全笔记：XSS]]></title><link>https://blog.youkuaiyun.com/Avril_High/article/details/107640566</link><guid>https://blog.youkuaiyun.com/Avril_High/article/details/107640566</guid><author>Avril_High</author><pubDate>Tue, 28 Jul 2020 17:11:41 +0800</pubDate><description><![CDATA[1）编码绕过，对关键字进行编码后上传。注意一个元素，可能既是html元素的值，也是url的值，此时它支持多种编码。
html元素或属性的值：支持解析实体编码：&amp;qout;html10：ahtml16：a
javascript值：支持jsunicode编码：\u003b，js8：\074,js16：\x3c
href的值：支持url编码
on事件的值：支持html10,html16，jsunicode,不支持js8进制和js16进制
2）大小写绕过，对关键字进行大小写变形。
3）特殊字符绕过，在关键字]]></description><category></category></item><item><title><![CDATA[安全笔记：javascript（基于javascript引擎Rhino实现的）沙箱绕过]]></title><link>https://blog.youkuaiyun.com/Avril_High/article/details/106216721</link><guid>https://blog.youkuaiyun.com/Avril_High/article/details/106216721</guid><author>Avril_High</author><pubDate>Tue, 19 May 2020 16:13:59 +0800</pubDate><description><![CDATA[javascript支持各种奇怪的语法来执行类方法，导致常规的检查代码中是否包含此类名，来限制命令执行被绕过：
var String=  java['lang']["String"];
var String=  ”java.lang.String";
var String=java['lan'+'g']['Str'+'ing']['valueOf']('8');

绕过方式一：
var input=  java['lang']['Ru'+'ntime']['getR'+'untime']()['exec']]]></description><category></category></item><item><title><![CDATA[JAVA笔记八：设计模式]]></title><link>https://blog.youkuaiyun.com/Avril_High/article/details/106166393</link><guid>https://blog.youkuaiyun.com/Avril_High/article/details/106166393</guid><author>Avril_High</author><pubDate>Sat, 16 May 2020 22:23:03 +0800</pubDate><description><![CDATA[设计模式：设计模式主要的作用是让类在功能扩展时，能保持原有的小和单一，而不是越来越臃肿和耦合。
装饰器模式：为了提供新接口给外部调用，和旧接口实现相同的接口，在调用新接口的方法中，会调用旧接口的方法，并对其进行扩展。（比如原来有一个画类，有很多实现类印象派、野兽派；现在想提供一个裱画操作，但是裱画也有很多风格，比如镜框类、宣纸类，每一个都直接继承原来的画类不合适，也就是需要扩展一个抽象类叫做被裱的画类，镜框类、宣纸类都放在这个类下面，但是操作对象仍然可以是各种画，同时被裱的画有又需要具备画的属性和方法。）。]]></description><category></category></item><item><title><![CDATA[JAVA笔记七：反射]]></title><link>https://blog.youkuaiyun.com/Avril_High/article/details/106166346</link><guid>https://blog.youkuaiyun.com/Avril_High/article/details/106166346</guid><author>Avril_High</author><pubDate>Sat, 16 May 2020 22:20:48 +0800</pubDate><description><![CDATA[反射技术是大部分框架得以实现的支柱（比如Spring，Mybatis）。它允许在运行时获取类的任何信息，然后就可以对类进行任何的操作。反射技术主要靠Class类来实现。
Spring应用反射技术举例：
1.实现com.java.test.HelloWorld类。
2.Springbeansxxx.xml

3.MainApp.java的main方法中调用
ApplicationContext ac=new ClassPathXmlApplicationContext(“bean.xml”);
HelloWo]]></description><category></category></item><item><title><![CDATA[JAVA笔记六：JVM内存和gc]]></title><link>https://blog.youkuaiyun.com/Avril_High/article/details/106166336</link><guid>https://blog.youkuaiyun.com/Avril_High/article/details/106166336</guid><author>Avril_High</author><pubDate>Sat, 16 May 2020 22:19:03 +0800</pubDate><description><![CDATA[JVM是一份本地化的程序（可执行的文件），程序运行起来成为进程。java程序是跑在JVM上的，严格来讲，是跑在JVM实例（JVM跑起来的进程）上，二者合起来称之为一个JAVA进程。各个JVM实例之间是相互隔离的。
Jvm内存
•	方法区（Method Area）：全局共享，持久代。方法区存放了要加载的类的信息（如类名、修饰符等）、静态变量、构造函数、final定义的常量、类中的成员变量和方法等信息。运行时常量池（Runtime Constant Pool）是方法区的一部分，用于存储编译器生成的常量和引用（比]]></description><category></category></item><item><title><![CDATA[JAVA笔记五：多线程]]></title><link>https://blog.youkuaiyun.com/Avril_High/article/details/106166275</link><guid>https://blog.youkuaiyun.com/Avril_High/article/details/106166275</guid><author>Avril_High</author><pubDate>Sat, 16 May 2020 22:17:16 +0800</pubDate><description><![CDATA[线程的内存
•	可见性：jvm为了加快性能，对于多cpu，会将线程要用到的的对象值从共享内存拷贝一份出来，放在这个线程的缓存里，在每次被线程访问时，都是从自己的缓存中读取该值，如果有修改，则在线程结束时把值写回共享内存。这就意味着，如果两个线程看似操作同一个变量，但是另一个线程改变了这个变量，不会立刻刷新共享内存，同样，一个线程一旦获取到这个变量，后续也很可能不再从共享内存中读取新值，而是从缓存中拿旧的值。volatile保证了一个变量的修改立刻对所有线程可见，就叫做可见性。
•	原子性：原子性是针对一条C]]></description><category></category></item><item><title><![CDATA[JAVA笔记四：集合]]></title><link>https://blog.youkuaiyun.com/Avril_High/article/details/106166076</link><guid>https://blog.youkuaiyun.com/Avril_High/article/details/106166076</guid><author>Avril_High</author><pubDate>Sat, 16 May 2020 22:09:47 +0800</pubDate><description><![CDATA[Java集合工具包位置是java.util.*
Java集合主要包括2块：数据结构（Collection接口，Map接口）和工具类（Arrays，Collections，Iterator迭代器)。
•	静态数组类：即我们通常意义上说的数组，是最特殊的Java类，Object的直接子类（遵循Object类的所有规则，比如a=b是传递对象地址），但是没有类文件，也没有构造函数。它的大小一旦初始化后就不能变化了。
⁃	声明：int[] intarray或int intarray[]。
⁃	初始化：new int[]]></description><category></category></item><item><title><![CDATA[JAVA笔记三：运算&字符]]></title><link>https://blog.youkuaiyun.com/Avril_High/article/details/106165917</link><guid>https://blog.youkuaiyun.com/Avril_High/article/details/106165917</guid><author>Avril_High</author><pubDate>Sat, 16 May 2020 21:57:46 +0800</pubDate><description><![CDATA[运算符：运算符由Java提供，不支持重载（即运算符提供了什么能力，就只能用什么能力）。
除了=，和!=外，其他操作符都只能操作基本数据类型（包装类通过自动拆装箱也能完成运算）。优先级基本上从高到低。
•	算术运算符：+ - * / % ++ —
⁃	+ 有个特例，String类不是数据类型但可以使用+，这实际上不是运算符的重载，而是Java提供了一个语法糖（看上去是+，实际编译时就被替换成了StringBuffer.append）。
•	关系运算符： != &gt; &lt;
⁃	对于基本数据类型，比较值；]]></description><category></category></item><item><title><![CDATA[JAVA笔记二：输入输出]]></title><link>https://blog.youkuaiyun.com/Avril_High/article/details/106044864</link><guid>https://blog.youkuaiyun.com/Avril_High/article/details/106044864</guid><author>Avril_High</author><pubDate>Sun, 10 May 2020 23:42:18 +0800</pubDate><description><![CDATA[IO类：IO包中绝大部分的类都是由以下四个类直接或间接继承来的
InputStream，OutputStream，Reader，Writer。他们是Object的直接抽象子类。此外还有Serializable接口类，文件类。
流：流是在数据（Java程序中可以使用的数据对象）和io设备（比如文件，内存，磁盘，控制台，网络设备）间建立的一个管道。输入和输出都是相对于Java进程而言，InputStream/Reader输入流从io设备中获取数据，OutputStream/Writer输出流将数据输出给io设备]]></description><category></category></item><item><title><![CDATA[JAVA笔记一：基本语法]]></title><link>https://blog.youkuaiyun.com/Avril_High/article/details/106044548</link><guid>https://blog.youkuaiyun.com/Avril_High/article/details/106044548</guid><author>Avril_High</author><pubDate>Sun, 10 May 2020 23:16:40 +0800</pubDate><description><![CDATA[基本语法
编写Java程序时，应注意以下几点：
•	大小写敏感：Java是大小写敏感的，这就意味着标识符Hello与hello是不同的。
•	源文件名：源文件名必须和类名相同。当保存文件的时候，你应该使用类名作为文件名保存（切记Java是大小写敏感的），文件名的后缀为.java。（如果文件名和类名不相同则会导致编译错误）。	一个源文件中只能有一个public类，一个源文件可以有多个非public类。
•	类名：Java的两大对象类型之一。类有abstract class 和 普通class，抽象类主要用于定]]></description><category></category></item><item><title><![CDATA[递归遍历目录的shell脚本]]></title><link>https://blog.youkuaiyun.com/Avril_High/article/details/86751874</link><guid>https://blog.youkuaiyun.com/Avril_High/article/details/86751874</guid><author>Avril_High</author><pubDate>Sat, 02 Feb 2019 20:08:00 +0800</pubDate><description><![CDATA[function getdir(){
#echo “param=”$1
param=KaTeX parse error: Expected 'EOF', got '\?' at position 22: …param=`tr &amp;amp;quot; &amp;amp;quot; &amp;amp;quot;\̲?̲&amp;amp;quot; &amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;lt;paramfor element inls KaTeX pars]]></description><category></category></item></channel></rss>