大型分布式网站架构设计与实践3

第3章 互联网安全架构

3.1 常见的web攻击手段

3.1.1 XSS攻击

1、xss攻击的全称是跨站脚本攻击,即攻击者在网页中嵌入恶意脚本程序,当用户打开该网页时,脚本程序便开始在客户端的浏览器上执行,以盗取客户端cookie、用户名密码,下载执行病毒木马程序,甚至是获取客户端admin权限等

2、XSS的原理

如文本框中不是输入正常的字符串,而是使入一个script脚本,使与原始的HTML串成一个可执行的脚本

3、XSS防范:需要对用户输入的数据进行HTML转义处理,将其中的”尖括号“、”单引号“、”引号“之类的特殊字符进行转义编码。

3.1.2 CRSF攻击

1、CSRF攻击的全称是跨站请求伪造,是一种对网站的恶意利用,可以理解为,攻击者盗用了你的微分,以你的名义向第三方网站发送恶意请求。

2、CRSF攻击原理

1)用户C浏览并登录网站A

2)验证通过,浏览器生成网站A的cookie

3)用户C在没有登出站点A的情况下,访问恶意网站B

4)站点B要求访问第三方站点A

5)根据B在步骤4的要求,浏览器带着步骤2处产生的cookie访问站点A

6)由于浏览器会带上用户C的cookie,站点A不知道步骤5的请求是B发出的,因此站点A会根据用户C的权限处理步骤5的请求,这样B就达到了伪造用户C请求的目的

3、CSRF的防御

1)将cookie设置为HttpOnly

2)增加token

3)通过referer识别

在http头中有一个字段叫Referer,记录了HTTP请求的来源地址。

3.1.3 SQL注入攻击

1、SQL注入:通过把SQL命令伪装成正常的HTTP请求参数,传递到服务端,欺骗服务器最终执行恶意的SQL命令,达到入侵目的。

2、SQL注入攻击原理

用户输入的文本中,加入Sql语句,使后台的Sql语句形成完整的可执行语句

3、SQL注入的防范

1)使用预编译语句----预编译时,用户输入的如果含有特殊字符会补转义

2)使用ORM框架

3)避免免密码明文存放---存储的密码进行单向Hash,如MD5加密

4)处理好相应的异常

3.1.4 文件上传漏洞

1、文件上传攻击指的是恶意攻击者利用一些站点没有对文件的类型做很好的校验,上传了可执行的文件或者脚本,并且通过脚本获得服务器上相应的权利,或者是通过诱导外部用户访问、下载上传的病毒或木马文件,达到攻击的目的。

2、防范 :对上传的文件类型进行白名单校验,限制上传文件的大小,上传文件需要进行重命名

3、文件后缀类型的判断:起始的几个字节内容是固定的,因此,可以通过这几个字节的内容判断类型,这几个字节称为魔数。

1)通过魔数来判断文件类型

2)imagemagick------是一个图片处理的开发工具包,能对图片进行缩放处理

3.1.5 DDos攻击

分布式拒绝服务攻击,DoS攻击就是利用合理的客户端请求来占用过多的服务器资源,从而使合法用户无法得到服务器的响应。DDoS攻击手段是在传统的Dos攻击基础上产生的一类攻击方式,传统攻击一般是采用一对一的方式,当攻击目标的CPU速度、内存或者网络带宽等各项性能指标不高的情况下,它的效果是明显的。

1、SYN Flood---TCP

伪造大量的IP给服务器发送SYN报文

2、DNS Query Flood---UDP

向被攻击的服务器发送少量的域名解析请求。

3、CC攻击----HTTP

攻击者控制大量“肉鸡”或者从互联网上搜寻大量匿名的HTTP代理,模拟正常用户给网站发起请求直到该网站拒绝服务为止。避开缓存,进行多次DB查询操作或者 一次请求返回大量的数据。

3.1.6 其他攻击手段

DNS域名劫持、CDN回源攻击、服务器权限提升,缓冲区溢出以及一些依赖于平台或者具体软件漏洞的攻击等。

3.2 常用的安全算法

3.2.1 数字摘要

由一个单向Hash函数对消息进行计算而产生。消息在开始时进行Hash,收到后也进行Hash,进行对比,确认正确性。

1、MD5

信息摘要算法5,长度128位,不可逆。

2、SHA

安全散列算法,长度160位,运行速度比MD5慢,但更为安全

3、十六进制编码

4、Base64编码

是一种基于64个可打印字符来表示二进制数据的方法。

5、彩虹表破解Hash算法

彩虹表法是一种破解哈希算法的技术,从原理上来说能够对任何一种Hash算法进行攻击,就是一张彩各种Hash算法生成的明文和密文的对照表。

3.2.2 对称加密算法

数据发送方将明文和加密密钥一起经过特殊加密算法处理后,生成复杂的加密密文进行发送,数据接收到收到密文后,若想读取原文,则需要使用加密使用的密钥及相同算法的逆算法对加密的密文进行解密,才能使其恢复成可读明文

1、DES算法

明文按64位进行分组,密钥长64位,但事实上只有56位参与DES运算,分组后的明文和56位的密钥按位替代或交换的方法形成密文

2、AES算法

支持128、192、256三种密钥长度

3.2.3 非对称加密算法

又称为公开密钥加密算法,它需要两个密钥,一个为公开密钥,一个为私有密钥

公钥与私钥需要配对使用,如果用公钥对数据进行加密,只有对应的私钥才能进行解密,如果使用私钥对数据进行加密,那么只有用对应的公钥才能进行解密

1、RSA算法

3.2.4 数字签名

将通信内容的摘要信息使用发送都的私钥进行加密,然后将密文与原文一起传输给信息的接收都,接收都通过发送都的公钥解密被加密的势要信息,然后使用与发送者相同的摘要算法,对接收都收到的内容彩相同的方式产生摘要串,与解密的摘要串进行对比,如果相同,则说明接收到的内容是完整的,在传输过程中没有受到第三方篡改,否则说明通信内容已被第三方修改。

1、MD5withRSA

采用MD5算法生成需要发送正文的数字摘要,并使用RSA算法来对正文进行加密和解密

2、SHA1withRSA

采用SHA1算法生成需要发送正文的数字摘要,并使用RSA算法来对正文进行加密和解密

3.2.5 数字证书

数字证书也称电子证书,类似于日常生活中的身份证,也是另外一种形式的身份认证,用于标识网络中的用户身份。

1、X.509

2、证书签发:需要数字证书认证机构CA来进行颁发。verisign和thawte、cacert等

3、证书校验

4、证书管理

1)keytool

2)openssl

5、证书的使用

3.3 摘要认证

3.3.1 为什么需要认证

外界通过对通信的监听,可轻而易举地根据请求和响应双方的格式,伪造请求与响应,修改和窃取各种信息。

3.3.2 摘要认证的原理

3.3.3 摘要认证的实现

1)客户端参数摘要的生成

请求参数--->参数排序----->将参数串接起来,加上secret生成待摘要字符串---->使用MD5等摘要算法生成摘要串----->摘要串

2)服务端参数摘要校验

请求参数----->参数排序----->将参数串接起来,加上secret生成待摘要字符串---->使用MD5等摘要算法生成摘要串----->服务端生成的摘要串与客户端通过header传递过来的摘要串进行比较----->参数是否被篡改

3)服务端响应摘要生成

在响应内容后面加上secret生成待摘要字符串---->使用MD5等摘要算法生成摘要串----->响应摘要串

4)客户端响应摘要校验

客户端接收到响应内容后,加上secret生成待摘要字符串---->使用MD5等摘要算法生成摘要串----->客户端生成的摘要串与服务端通过header传递过来的摘要串进行比较----->响应是否被篡改

3.4 签名认证

3.4.1 签名认证原理

签名认证的优势在于加密时使用的是私钥,而解密时使用的是对外公开的公钥,私钥由私钥持有都保管,不需要泄露和传输给第三方,安全性大大提高。但同时签名认证所使用的非对称加密算法将消耗更多的时间和硬件资源。

3.4.2 签名认证的实现

实现起来主要包含如下四个方面:客户端参数签名生成、服务端参数签名校验、服务端响应签名生成和客户端响应签名

1、客户端参数签名生成

参数排序----->将参数串接起来,生成待摘要字符串---->使用MD5等摘要算法生成摘要串----->使用客户端的私钥对接要串加密---->数字签名

2、服务端参数签名校验

参数排序----->将参数串接起来,生成待摘要字符串---->使用MD5等摘要算法生成摘要串---->使用客户端的公钥对对接收到的数字签名解密,得到客户端传递的摘要串----->比较解密的客户端摘要串与服务端生成的摘要串是否一致----->客户端身份及内容是否被篡改

3、服务端响应签名生成

响应内容------->响应内容作为待摘要字符串---->使用MD5等摘要算法生成摘要串----->使用服务端的私钥对摘要串加密---->数字签名

4、客户端响应签名

响应内容------->响应内容作为待摘要字符串---->使用MD5等摘要算法生成摘要串---->使用服务端的公钥对数字签名解密---->比较解密后的摘要串与客户端生成的摘要串是否一致------->服务端身份及内容是否被篡改

3.5 HTTPS协议

3.5.1 HTTPS协议原理

基于SSL的HTTP协议,简单地说就是HTTP的安全版,通信的内容使用对称加密方式进行加密,通信两端约定好通信密码后,,通过公钥对密码进行加密传输,只有该公钥对应的私钥,也就是通信的另一端能够解密获得通信密码。

协议栈------HTTP(应用层)--->SSLorTLS(安全层)--->TCP(传输层)--->IP(网络层)--->网络接口层

3.5.2 SSL\TLS

3.5.3 部署HTTPS Web

3.6 OAuth的介绍

3.6.1 OAuth的介绍

1、平台商、第三方软件厂商、用户之前的访问授权,提供一个安全、开放的标准

3.6.2 OAuth授权过程

第三方开发者向平台商申请应用ID,即appID,对自己的APP进行注册,Oauth授权涵盖了三个角色

1)用户--->ISV发起请求

2)ISV--->平台商请求Request Token,并带上申请的Appid

3)平台------>返回第三方应用RequestToken

4)ISV应用将用户引导到平台的授权页面,并带上自己的Appid,RequestToken和回调地址

5)用户在平台的页面上进行登录,并且完成授权---->这样便不会暴露用户和密码给第三方

6)平台通过ISV提供的回调链接,返回给ISV应用accessToken

7)ISV应用通过AccessToken取得用户授权的数据,进行加工后返回给用户,授权数据访问完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
健身国际俱乐部系统是一种专为健身俱乐部设计的管理软件,它通过集成多种功能来提高俱乐部的运营效率和服务质量。这类系统通常包含以下几个核心模块: 1. **会员管理**:系统能够记录会员的基本信息、会籍状态、健身历史和偏好,以及会员卡的使用情况。通过会员管理,俱乐部可以更好地了解会员需求,提供个性化服务,并提高会员满意度和忠诚度。 2. **课程预约**:会员可以通过系统预约健身课程,系统会提供课程时间、教练、地点等详细信息,并允许会员根据个人时间表进行预约。这有助于俱乐部合理安排课程,避免资源浪费。 3. **教练管理**:系统可以管理教练的个人信息、课程安排、会员反馈等,帮助俱乐部评估教练表现,优化教练团队。 4. **财务管理**:包括会员卡销售、课程费用、私教费用等财务活动的记录和管理,确保俱乐部的财务透明度和准确性。 5. **库存管理**:对于俱乐部内的商品销售,如健身装备、营养补充品等,系统能够进行库存管理,包括进货、销售、库存盘点等。 6. **数据分析**:系统能够收集和分析会员活动数据,为俱乐部提供业务洞察,帮助俱乐部制定更有效的营销策略和业务决策。 7. **在线互动**:一些系统还提供在线平台,让会员可以查看课程、预约私教、参与社区讨论等,增强会员之间的互动和俱乐部的社区感。 8. **移动应用**:随着移动设备的普及,一些健身俱乐部系统还提供移动应用,方便会员随时随地管理自己的健身计划。 9. **安全性**:系统会确保所有会员信息的安全,采取适当的数据加密和安全措施,保护会员隐私。 10. **可扩展性**:随着俱乐部业务的扩展,系统应该能够轻松添加新的功能和服务,以适应不断变化的市场需求。 健身国际俱乐部系统的选择和实施,需要考虑俱乐部的具体需求、预算和技术能力,以确保系统能够有效地支持俱乐部的运营和发展。通过这些系统的实施,健身俱乐部能够提供更加专业和高效的服务,吸引和保留更多的会员,从而在竞争激烈的
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值