第一章 常见网络攻击1.1、XSS攻击1.1.1 XSS简介XSS攻击的全称是跨站脚本攻击(Cross Site Scripting),为不跟层叠样式表 跨站脚本攻击也就是在网站里嵌入恶意脚本程序,当用户打开网站时,窃取Cookie,盗取信息 1.1.2 XSS攻击方式1、URI参数传递 2、表单提交参数 1.1.3 解决方案1、继承HttpServletRequestWrapper,然后重写(@Override)getParameter()、getHeader()等等方法。 2、文件上传不走HttpServletRequestWrapper,需要继承CommonsMultipartResolver,重写方法 1.2、CSRF攻击1.2.1 CSRF简介CSRF全称是跨站请求伪造(cross site request forgery),CSRF伪装受信任用户,向第三方平台发送恶意请求
1.2.2 解决方案1、设置Cookie为HttpOnly 我们知道CSRF是通过窃取Cookie来发送恶意请求的,所以我们可以为Cookie设置HttpOnly属性,这样JavaScript或者Applet就不可以恶意发送请求了 2、添加Token验证 竟然Cookie有被恶意窃取的可能性,那么我们或许可以另辟新径,我们可以在访问请求时加上Token,服务端再进行验证,Token验证通过则可以访问,否则限制访问,当然这个Token不可以放在Cookie里 3、添加Referer识别 学习HTTP协议的你可能知道,在HTTP的请求头里有个参数叫Referer,这个参数其实就是记录了请求的来源地址
1.3、SQL注入攻击1.3.1 SQL注入简介所谓SQL注入攻击就是将一些恶意SQL执行指令伪装成SQL参数传给DBMS,然后执行恶意攻击 1.3.2 解决方案1、使用预编译语句
创建一个Statement对象,看起来是没啥问题,可是对黑客来说这就是SQL注入的一个很好的代码缺陷了 2、必要的加密 1.4、DDos攻击1.4.1 DDos攻击简介DDos(Distributed Denial of Service),即分布式拒绝服务攻击,DDos攻击是基于Dos发展来的。 什么是Dos呢?首先简单介绍一下Dos,Dos就是利用信任的客户端向服务端频繁发送请求,从而达到服务器处理不过来,请求超时。所以Dos其实就是一对一的,在邮件设施还不太好的情况是有效的,对于性能极佳的服务器压根不管用了,所以就有了DDos,分布式拒绝服务攻击。 DDos攻击过程大概是怎么样的呢? 竟然是分布式,首先黑客可能会通过程序控制大量的计算机,然后通过这个计算机群在同一个时间,发送大量的请求到目标服务器,从而达到服务器处理不过来,请求超时的情况。 1.4.2 DDos常用方式下面简单介绍一下两种DDos攻击的方式SYN Flood和DNS Query Flood 【SYN Flood】 SYN Flood是DDos的一种攻击方法,SYN Flood是互联网最经典的攻击方式之一。这个攻击是通过TCP连接建立的,攻击前先建立TCP连接,这个需要对TCP的三次握手和四次挥手协议有一定了解,其攻击过程大概如图,图来自互联网 【DNS Query Flood】 DNS Query Flood攻击从名称其实可以猜测出和DNS有关的了,首先简单介绍一下DNS,DNS(Domain Name System)是位于应用层的协议,负责域名解析服务,DNS通过域名查找IP地址,或逆向从IP地址反向查找域名。 然后DNS Query Flood攻击是怎么做到的呢? 攻击过程大致为: 通过程序控制,向目标服务器的DNS服务器,发送大量的域名解析请求,不过这些域名基本是随机生成的,比如改下端口什么的。 DNS服务器接收到域名之后,先去缓存里查找是否有这个域名,然后发现没有,之后,DNS服务器就会向上层的DNS服务器递归查询了,指导向上查询了全球13台根DNS服务器。这时候肯定会出现域名解析超时的情况。 第二章 常用加密算法2.1 数字摘要算法2.1.1 数字摘要算法简介所谓数字摘要其实就是通过一个Hash函数获取指导长度的摘要字段,这段字段也可以叫做数字指纹,然后解密时,通过验证摘要也即数字指纹。大概过程如图 2.1.2 常用数字摘要算法MD5:也即信息摘要算法5,Message Digest Algorithm 5,是数字摘要算法的一种实现,Md5由Md4、Md3、Md2改进而来,其摘要长度为128位 SHA:SHA也即安全散列算法(Secure Hash Algorithm),SHA-1算法生成的摘要信息的长度为160位,由于生成的摘要信息更长,运算的过程更加复杂 2.2 对称加密算法2.2.1对称加密过程对称加密过程大致分为加解密过程,加密过程就是明文和密钥通过特定加密算法进行封装之后,变成密文,发送给数据接收方,数据接收方,同样用相同的算法的逆过程进行界面,用相同的密钥去匹对。 2.2.2常见对称加密算法DES算法全称数据加密标准(Data Encryptin Standard),属于对称加密算法。 明文按64位进行分组,密钥长64位,但事实上只有56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1),分组后的明文和56位的密钥按位替代或交换的方法形成密文。 AES算法全称高级加密标准(Advanced Encryption Standard),由DES算法发展而来,设计有三个密钥长度:128,192,256位,比DES算法的加密强度更高,更为安全。 2.3 非对称加密算法2.3.1 非对称加密过程非对称加密算法和对称加密算法类似,不过就是分为了公钥和私钥,加密过程可以用公钥,也可以用私钥,解密过程同理。 2.3.2 常见非对称加密算法RSA算法:够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。 算法设计基本来自简单的数论事实:将两个大素数相乘十分容易,但反过来想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。 |
|