笔记 3、互联网安全架构

1、常见Web攻击手段


(1)、XSS攻击 (Cross Site Scripting, 跨站脚本攻击)

攻击者在网页嵌入恶意脚本呢程序,当用户打开网页,脚本开始在客户端浏览器执行,盗取客户端cookie、用户信息,执行木马程序等。

例子:在input 输入框中输入script:<script>alert("haha")</script>。若网页未过滤该脚本,直接显示,脚本会运行显示弹出框。

解决:将特殊符号 <、>、‘、” 都转义编码为&lt;   &gt;  &amp;  。JSTL、Struts等框架自带XML转义功能,如JSTL设置 excapeXML="true";


(2)、CRSF (Corss Site Request Forgery,跨站请求伪造)

攻击者盗用用户身份,以用户名义向第三方网站发送恶意请求。

例子: 假设网站A上有恶意链接或脚本,点击该链接直接发生用户在银行网站B上的转账操作。用户在登录某银行网站A后,没有及时退出,若过后不久不小心在网站A上点击了链接,则银行网站B处理银行转账请求,网站A成功钓鱼。

解决:(a)、将Cookie设置 httpOnly 属性,保证JavaScript、Applet等无法读取Cookie

(b)、增加Token,即在表单中增加一个隐藏域。

(c)、通过Refer识别:request.getHeader("refer"); refer 记录了HTTP请求的来源,判断来源是否合法。


(3)、SQL注入

将SQL命令伪装成正常的HTTP请求参数,传递到服务器端,欺骗服务器执行恶意SQL。

例子:字符串拼凑SQL语句:  String sql = "select * from user where username =\'" + username + "\' and password=\'"+password+"\'";

若用户填入 username 为 "111",password为 "111  or 1=1; delete table user -- " ,这不但绕过验证,而且将把表数据删完,造成灾难性后果。

解决:1、不使用字符串拼凑SQL,使用PreparedStatement

2、使用ORM框架,如Hibernate,Ibatis

3、密码等信息不能明文存储,加密时候加盐,防止穷举

4、处理好异常


(4)、文件上床漏洞

将恶意的病毒、木马等修改后缀名后,上传

解决:通过文件的魔数判断文件类型,即常用类型的文件如JPEG、PNG、GIF、TIFF、BMP、DWG、PSD、XML、HTML、PDF、ZIP、RAR、WAV、AVI等,起始几个字节的内容是固定的。

imagemagick 可处理图片。


(5)、DDoS 攻击 (Distributed Denial of Service)  分布式拒绝服务攻击

基本Dos: 利用合理的客户端请求来占用过多的服务器资源,从而使合法用户无法得到服务器的相应。

DDos 即是分布式的Dos。


常见手段

SYN Flood

TCP连接需要三次握手。攻击者伪造大量不存在的IP地址请求TCP连接的SYN报文,服务器维护一个巨大的半连接等待IP列表,不断对列表进行遍历和重试,占用大量资源,使得正常用户无法通信。


DNS Query Flood

向被攻击服务器发送海量大部分不存在的域名解析请求。同时伪造端口和客户端IP,访问被访问控制列表过滤。


HTTP Flood

通过控制大量肉鸡或者匿名代理,模拟正常用户给网站发起请求直到网站拒绝服务为止。


(6)、DNS域名劫持、CDN回源攻击、服务器权限提升、缓冲区溢出等。



2、常用安全算法


(1)、数字摘要:验证原文是否被篡改,MD5,SHA

(2)、加密算法:对称 DES、3DES、AES,非对称RSA

(3)、数字签名:将数字摘要与加密结合起来,私钥加密,公钥揭秘,从而证实作者身份,验证没有篡改。MD5withRSA,SHA1withRSA

(4)、数字证书:可使用openSSL


3、摘要认证


4、签名认证


5、HTTPS

基础:SSL、TLS


6、OAuth













内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwpsfp.html