关键数据保护的服务架构

 2022-01-17 11:01

论文总字数:26761字

目 录

1. 绪 论 1

1.1 研究背景及研究意义 1

1.2 国内外研究现状 1

1.3 本文的主要工作及布局安排 2

1.3.1本研究的主要工作 2

1.3.2 结构安排 2

2. 技术概述 3

2.1 Web Service 3

2.1.1 远程过程调用(RPC) 3

2.1.2简单对象访问协议(SOAP) 4

2.1.3表征状态转移(REST) 4

2.2 Django REST Framework 6

3. REST API安全设计 6

3.1 信息安全 6

3.2 机密性 7

3.2.1 数据存储安全 7

3.2.2 数据传输安全 7

3.2.3 防止未授权访问 7

3.2.4 防止越权操作 9

3.3 完整性 9

3.4 可用性 10

3.5 基于Django REST Framework的安全解决方案 10

3.5.1 HTTPS 10

3.5.2 身份认证 11

3.5.3 权限管理 11

3.5.4 节流以控制请求速率 12

3.5.5 URL过滤 12

3.5.6 CSRF防御 12

3.5.7 SQL 注入防御 13

3.5.8 数据库备份 13

3.5.9 操作日志审计 13

4. 系统开发实施、运行与测试 14

4.1 开发环境 14

4.2 测试数据 14

4.3 RESTful API基本服务搭建 15

4.3.1 建立开发环境 15

4.3.2 建立数据库与Python类的联系 16

4.3.3 视图设计 18

4.3.4 路由设计——URL安全 19

4.3.5 API基本功能测试 19

4.4 使用HTTPS 20

4.4.1 SSL证书制作 21

4.4.2 搭建nginx、uWSGI服务器 21

4.4.3 在nginx上配置SSL规则 21

4.4.4 HTTPS测试 22

4.5 鉴权模块 23

4.6 权限管理模块 24

4.7 节流模块 25

4.8 数据库备份 25

4.9 小结 26

5. 总结与展望 26

5.1 总结 26

5.2 讨论 26

参考文献 26

致 谢 28

关键数据保护的服务架构

杨雨

, China

Abstract: In the modern world, the Internet has become a very important and basic platform. With the Internet, people all over the world have access to information conveniently, and they can also publish message with no obstacle. But most systems of information are not secure enough. For sensitive data, problems of Confidentiality, Integrity and Availability appear especially prominent. This article is about framework’s design of serving key data based on web service. We make discussion of mainstream technologies under every features of Information Security such as Confidentiality, Integrity and Availability, and compare the difference among them. These technologies are mainly TLS, Authentication, Permission, Throttling, Filtering against the URL, Web attack, backup of database and so on. After comparing with RPC and SOAP, we choose to REST to build the web service. And we analyze Django REST framework, who did a lot for RESTful API and API’s security. At last, we successfully build the web API through DRF, nginx and uWSGI, and satisfied the demand of web service’s security basically.

Keywords: RESTful API;Data Security;HTTP over SSL;Authentication;Permission

1. 绪 论

1.1 研究背景及研究意义

当今世界,因特网已经成为一个非常重要的基础平台,通过因特网,世界各地的人都可以快捷地获取信息、发布信息。许多企业、组织、机构等都将它们的应用架设在这个平台上,从而为客户提供更加方便、快捷的服务支持或数据提供。万维网(World Wide Web)即为建立于因特网之上的一种开放式的超媒体信息系统,它将数据以文档或使用超文本传输协议(HyperText Transfer Protocol)且以web页面的形式向客户端展示出来,以此提供信息。客户端即浏览器,它将收到的信息以人类可读的格式展现出来。

而Web技术也经历了数次的变革。1991年Web首次在因特网上登场,主要功能就是客户端向服务端请求静态HTML信息,客户端中主要展现的是静态的文本或图像信息;1993年CGI[1](Common Gateway Interface)通用网关接口的出现带来了Web上动态信息服务的繁荣,随之而来的就是各种动态技术并诞生了MVC模式,无数纷繁复杂的Web应用(Web Application)涌现;随后,区别于传统的内容由网站服务提供方主导生成的模式,代表了资源平等,内容由用户主导生成的新模式Web 2.0诞生了。

Web技术的不断发展给人们带来了不可想象的便利,人们可以足不出户便了解到全世界的消息,但更便捷的数据上传与获取,同时也意味着更多隐私的数据暴露于网络空间,数据泄露、被篡改甚至被滥用于谋取私人利益的可能性增大了。尽管随着技术的发展,大多数Web应用不仅在功能上得到了丰富,性能方面也在不断地优化和提高,然而安全状况依然堪忧,网站安全没有得到足够的重视,过半的Web站点都非常脆弱,以致于频繁受到攻击。现实是,大多数企业都只关注硬件网络或者服务器层面的安全性,对于Web应用自身并没有投入足够的关注,使得很多涉及用户隐私或商业机密的数据变得岌岌可危。

更重要的是,很多网站的服务性质决定了用户必须提交包括姓名、身份证号、联系方式、家庭情况等真实的数据,相较于其他普通平台的数据,这类数据就很可能涉及到个人隐私或是商业机密。在它们还需向第三方提供授权服务的时候,根据不同的权限获取到不同敏感级别的数据也显得尤为重要。然而用户数据泄露、敏感数据泄露的问题依然每天都在发生着,因此如何做到敏感隐私数据的保护是一个重要的课题。数据的完整性、保密性、可用性都是数据安全中极其重要的部分,任何一个环节的失误都可能导致严重的后果。

1.2 国内外研究现状

随着大量用户数据泄露事件的发生,隐私数据保护问题已经称为了全球关注的热点,目前Web应用安全性研究主要集中在以下几个方面:

(1)身份验证

(2)权限管理

(3)数据加密传输

(4)请求过滤

(5)数据库加密

(6)数据备份

然而并非所有甚至少有Web应用能够真正做到各个方面的安全防护,缺乏一个整体化的,能够快速适配不同的需求场景解决方案,国内外Web应用的安全性仍然堪忧。

1.3 本文的主要工作及布局安排

1.3.1本研究的主要工作

本次毕业设计就是要针对敏感数据的保密性,完整性,可用性来提出一个整体的数据保护解决方案,并使用Django REST framework框架为用户提供友好的Web API使用页面,统一的共享和透明检索界面。这其中包括:

(1)数据备份,保证数据完整性

(2)鉴权和权限管理机制防止越权操作

(3)加密算法的研究

(4)数据库数据加密,以保证存储保密性

(5)数据在传输角度上的安全性研究,保证传输保密性

(6)请求过滤方法的研究

(7)数据完整性校验的研究

(8)基于Restful API的web service设计与实现

1.3.2 结构安排

本文的结构如下:

第一章绪论部分,着重介绍本文的研究背景及意义,以及国内外研究的现状,并且阐述本文的研究内容和论文布局安排。

第二章技术概述部分,介绍RESTful API的基础理论知识,包括REST的含义和特点,以及与其它两种主流的Web服务实现方案相比有何优势;以及Django REST Framework的介绍。

第三章REST API安全设计部分,分析REST API的一些安全隐患、相关的防御技巧以及REST API提供的安全机制。

第四章系统开发实施、运行与测试,这部分介绍具体实施方案,以及最终的系统运行情况,并对测试结果进行总结和分析。

第五章总结和展望,主要是对整篇论文做一个概述性质的总结,并说明进一步要做的工作。

2. 技术概述

2.1 Web Service

根据W3C的定义,Web服务[2](Web service)应当是一个软件系统,用以支持网络间不同机器的互动操作。与我们在浏览器上可以访问到的各种Web应用一样,Web服务(Web Service)也是使用HTTP协议来传输数据的技术,且同样运行于Web容器之上。然而它们之间的区别也是很明显的:对Web应用发起的请求,返回的是HTML、图像数据等结果,这些经过客户端浏览器的渲染呈现给用户;然而对于Web服务发起的请求,得到的是XML或JSON格式的数据,这些以原始结构呈现的数据一般不会展示给用户,它只纯粹地展示出数据,可以提供给各种外部应用、设备来使用。

对于Web 服务的使用者来说,可以轻易实现多种数据和服务的获取、聚合,从而更专注于对从外部获取的数据本身,并加以充分利用,而不是疲于处理纷繁复杂的页面渲染。此外,Web服务具有平台无关的特点,可以在各种平台上使用Web服务;编程语言无关,只要遵循Web服务相关的使用规则和协议,就可以用任意编程语言方便地获取数据,大大增加了Web 服务的适用性。例如腾讯地图WebService API,基于 HTTP协议的数据接口,开发者(即Web服务的使用者)可以使用任何客户端、服务器和开发语言,按照官方WebService API的规范,根据需求来构造相应的HTTP请求,从而获取到对应数据。这样就完全不需要开发者自己再去搭建服务器来维护地图相关的应用和数据,只需从云端请求就能完成功能了。

剩余内容已隐藏,请支付后下载全文,论文总字数:26761字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;