大型分布式网站架构设计与实践 第三章

第三章 互联网安全架构

       主要介绍和解决的问题:

常见的WEB攻击手段和防御方法,如XSS、CRSF、SQL注入等。

常见的一些安全的算法、如数字摘要、对称加密、非对称加密、数字签名、数字证书等

如何采用摘要认证方式方式信息篡改、通过数字签名来验证通信双方的合法性,以及通过HTTPS协议保障通信过程中数据不被第三方监听和截获。

在开放平台体系下,OAuth协议如何保障ISV对数据的访问是经过授权的合法行为

3.1 常见的WEB攻击手段

3.1.1 XSS 攻击:全称是跨站脚本攻击(cross site script) 其原理,提交附加一段脚本程序,

3.1.2 XSS防范,通过对用户输入的数据进行HTML转义处理,将其中的尖括号、单引号、引号之类的特殊字符进行转义,如jstl标签就进行了HTML的转义。

3.1.2 CSRF 攻击 :跨域请求伪造,通过伪装来自受信用用户的请求来利用受信用的网站,以本人的名义来向第三方网站发送恶意请求。

3.CSRF的防御:a.将cookie设置为HttpOnly(这样js就无法读取到cookie信息,避免攻击者伪造cookie)。

   b.增加token。服务端生成token,用户请求是,服务端对tooken进行校验。

   c.通过Referer识别:http头中有一个字段referer,记录了该http请求的来源地址。伪造者只能在其他网站构造请求,所以对请求头的referer进行验证,如果不是本网站的域,则拒绝访问。

3.1.3 SQL注入:注入的防范:a.使用预编译语句。b.使用ORM框架(对关键字符进行转义)c.避免免密码明文存放(使用MD5加密)

3.1.4 文件上传漏洞:1.通过魔数来判断文件类型。2.imagemagic环境准备。3.jmagic的安装。

   ImageMagick的功能十分强大,图像的缩放,图片水印生成、锐化、截取、图像格式转换等一系列复杂操作。

3.1.5 DDoS攻击:即分布式拒绝服务攻击,最基本的DOS利用合理的客户段请求来占用过多的服务器资源,从而使用户无法得到服务器响应。攻击者控制大量的计算机(肉鸡)来联合对一个或多个目标发起攻击,导致瘫痪。 常见的DDoS有:

1:SYN Flood

2:DNS Query Flood:采用方法是向被攻击的服务器发送海量的域名解析请求,通常域名是不存在的,并且通过伪装端口和客户段IP,防止请求被ACL过滤,造成DNS 瘫痪,用户无法访问。

3:CC攻击:是属于DDoS的一种,是基于应用层HTTP协议发起的,也称HTTP Flood,利用网上搜寻的大量匿名HTTP代理,模拟正常的HTTP请求,而这些请求有意的避开分布式缓存,进行多次的DB查询操作,或者一次性返回大量的数据,加速系统资源的消耗,CC攻击发起容易,防范困难,影响却很广泛。

3.2 常用的安全算法

3.2.1 数字摘要

1.MD5 :摘要长度为128位,普遍、快速、稳定。

2.SHA:安全散列算法,SHA-1摘要长度为160位,运算更为复杂,运行速度比MD5更慢,也更安全。

3.十六进制编码

4.Base64编码

5.彩虹表破解Hash算法

3.2.2 对称加密算法:数据发送方将明文和加密密钥一起经过特殊加密算法处理,生成复杂的加密密文进行发送

1.DES算法、3DES : 使用密钥生成器生成密钥,密钥为64位,其实为56位

2.AES算法,即高级加密标准,设计有三个密钥长度(128、192、256)比DES算法加密

强度更高,更安全。

3.2.3 非对称加密算法 :公开密钥算法,一个私钥一个公钥,用公钥加密,就需要使用私钥来

解密,用私钥加密,就用公钥解密,最广泛的是:RSA算法 先生成私钥和公钥。

3.2.4 数字签名:签名认证是对非对称加密技术与数字摘要技术综合的运用,通信正文经过相应

的摘要算法生成摘要后,使用消息发送者的私钥进行加密,生成数字签名,消息的接收端接收消息的正文和对应的数字

签名后,使用与发送段相同的摘要算法,生成通信正文的摘要,并且使用发送者的公钥来对数字签名进行解密,得到

发送端生成的摘要,进行比较后即可验证发送者的身份是否合法,正文的内容是否被篡改。

1.MD5withRSA

2.SHA1withRSA

3.2.5 数字证书:用于表示网络中的用户身份,包含(对象的名称、证书的过期时间、证书的

颁发机构(谁为证书担保)、证书颁发机构对证书的数字签名、签名算法、对象的公钥)

1.OpenSSL

3.3.2 摘要认证的原理:将参数名称和值经过一定的策略组织起来,加上一个密钥,来生成数字摘

要,传递给服务端。

3.5.3 部署HTTPS Web :即支持单向认证(仅需要服务端提供的证书即可),也支持双向认证(

通过服务端证书验证服务端身份)

1.tomcat 单向认证的配置

2.tomcat双向认证的配置

3.6 OAuth协议

3.6.1 OAuth :授权访问,平台商通过OAuth协议,提示用户对第三方软件厂商ISV进行授权

,使得第三方能够使用平台商的部分数据,对用户提供服务。OAuth不需要触及用户的账户信息,即用户密码,便可对

第三方授权。首先需要第三方开发者向平台商申请应用ID,即appID,对自己的APP进行注册,一次OAuth授权涵盖了

3个角色:用户、第三方应用、平台商。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值