Web安全与防护 (微课版) 课件 03-1 项目三 任务一登录认证功能实现;03-2 项目三 任务二SQL注入漏洞分类的理解_第1页
Web安全与防护 (微课版) 课件 03-1 项目三 任务一登录认证功能实现;03-2 项目三 任务二SQL注入漏洞分类的理解_第2页
Web安全与防护 (微课版) 课件 03-1 项目三 任务一登录认证功能实现;03-2 项目三 任务二SQL注入漏洞分类的理解_第3页
Web安全与防护 (微课版) 课件 03-1 项目三 任务一登录认证功能实现;03-2 项目三 任务二SQL注入漏洞分类的理解_第4页
Web安全与防护 (微课版) 课件 03-1 项目三 任务一登录认证功能实现;03-2 项目三 任务二SQL注入漏洞分类的理解_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目三

安全的数据库交换Web安全与防护本任务要点学习目标SQL的基本操作。动态网页的实现方法。能够实现数据库的增删查改。能够使用PHP实现数据库交互功能。任务一

登录认证功能实现目录CONTENTS01/熟悉SQL的基本操作02/熟悉动态网页的实现方法SQL的基本操作01什么是数据库?数据库是指按照一定数据模型组织、存储和管理数据的集合。常见的数据库有关系型数据库(如MySQL、Oracle、SQLServer等)和非关系型数据库(如MongoDB、Redis、Cassandra等)。关系型数据库是目前应用最广泛的数据库之一,其数据以表格的形式进行组织和存储,由多个数据表之间的关系来表达数据间的联系。SQL是关系型数据库最常用的查询语言,可用于对数据库中的数据进行增删改查等操作。常用的SQL命令包括:SELECT:查询数据、INSERT:插入数据、UPDATE:更新数据、DELETE:删除数据SELECT:查询数据的基本用法完整代码见教材2.4.1INSERT:插入数据的基本用法SQL的基本操作01SELECTcolumn1,column2,...FROMtable_nameWHEREcondition;SELECT语句用于从一个或多个表格中选取数据,并返回查询结果。其中,column1,column2,

...表示需要查询的列名,table_name表示要查询的表格名称

,condition表示查询条件。SELECT*FROMusers;例如,查询一个名为users的表格中的所有数据:INSERT语句用于向一个表格中插入新数据。其中,table_name表示要插入数据的表格名称,column1,column2,...表示需要插入数据的列名,value1,value2,...表示要插入的数据值。INSERT

INTOtable_name(column1,column2,...)VALUES(value1,value2,...);例如,向一个名为users的表格中插入一条新数据,其username列的值为"Tom",password列的值为"123456"。INSERT

INTOusers(username,password)VALUES('Tom','123456');UPDATE:更新数据的基本用法完整代码见教材2.4.1DELETE:删除数据的基本用法SQL的基本操作01UPDATE语句用于更新一个或多个表格中的数据。其中,table_name表示要更新数据的表格名称,column1=value1,column2=value2,...表示需要更新的列名和对应的数据值,condition表示更新数据的条件。例如,将一个名为users的表格中,username为"Tom"的记录的password更新为"654321"。INSERT语句用于向一个表格中插入新数据。其中,table_name表示要插入数据的表格名称,column1,column2,...表示需要插入数据的列名,value1,value2,...表示要插入的数据值。例如,向一个名为users的表格中插入一条新数据,其username列的值为"Tom",password列的值为"123456"。UPDATEtable_nameSETcolumn1=value1,column2=value2,...WHEREcondition;UPDATEusersSET

password='654321'

WHEREusername='Tom';DELETE

FROMtable_nameWHEREcondition;DELETE

FROMusersWHEREusername='Tom';什么是动态网页?动态页面通常指的是网页内容不是静态的,而是根据用户请求、数据库查询结果或其他实时数据生成的。动态页面通过服务器端脚本、数据库、模板引擎、框架、CMS、API和云服务等技术实现,以提供个性化和交互性强的用户体验。动态网页的实现方法02Python提供了一个名为“sqlite3”的内置模块来连接和操作SQLite数据库。此外,Python还有流行的库它们提供了更高级别的抽象,使开发人员可以更容易地与多种数据库交互。PythonJava开发人员通常使用JavaDatabaseConnectivity(JDBC)API来连接和操作数据库。JDBC是Java平台的标准API,提供了一组标准接口,用于连接到不同类型的数据库。JavaC#开发人员通常使用.NETFramework中的ADO.NET库来连接和操作数据库。ADO.NET提供了一组用于连接到不同类型数据库的类和接口,开发人员可以使用这些类和接口来执行常见的数据库操作。C#PHP开发人员通常使用PHPDataObjects(PDO)扩展库来连接和操作数据库。PDO提供了一个跨数据库的抽象层,使开发人员可以更轻松地在不同的数据库之间切换,并且可以使用相同的API来执行常见的数据库操作。PHP动态网页的实现方法02在Web应用程序中,用户身份的认证是必不可少的。通常情况下,用户的身份信息需要存储在数据库中。首先,我们需要在数据库中创建一个表来存储用户的身份信息。为了保证密码的安全性,通常将密码加密后存储在数据库中。完整代码见教材3.1.2动态网页的实现方法02我们需要校验用户提供的用户名和密码是否正确,可以从blog_admin表中查询数据库中记录的用户名和密码与用户提交的用户名和密码是否一致。SELECT*FROMblog_adminWHEREusername=?AND

password=?为了保证系统的安全性,我们需要对用户输入的敏感信息使用MD5算法进行加密。接着,我们通过SQL语句查询数据库中是否有对应的记录。如果存在,则说明用户输入的用户名和密码是正确的;否则,就说明输入的用户名或密码有误。完整代码见教材3.1.2动态网页的实现方法02当用户的登录请求得到响应时,我们需要记录用户的登录日志。我们记录用户登录信息,包括IP地址、登录时间和是否认证失败等字段。此外,我们还设置了限制IP地址在单位时间内的认证次数,以防止恶意攻击。如果在限制时间内认证失败次数超过5次,则不允许用户进行认证。完整代码见教材3.1.2动态网页的实现方法02通过以上步骤,我们就可以实现用户的身份认证,并保证了系统的安全性。为了实现博客文章的存储,我们需要在数据库中创建一个blog_article表,其中包含文章标题、作者、发布时间、文章内容、分类和文章ID等字段。完整代码见教材3.1.3动态网页的实现方法02在PHP中,我们可以使用mysqli_query函数来执行SQL语句,包括查询和修改操作。对于文章的显示和编辑操作,我们需要根据文章的ID从blog_article表中查询相应的文章信息。完整代码见教材3.1.3动态网页的实现方法02对于评论的显示和添加操作,我们需要根据文章的ID从blog_comment表中查询相应的评论信息以上是基本的文章存储和显示逻辑为了查询文章,我们需要使用SQL的SELECT语句,并在WHERE子句中使用LIKE操作符来模糊匹配文章的标题和分类。完整代码见教材3.1.4动态网页的实现方法02在查询文章之后,我们需要对查询结果进行分页处理,以便在页面上显示多个搜索结果。我们可以使用PHP的$_GET变量来实现分页以上我们就实现了网站的文章搜索功能。用户可以输入关键字搜索相关的文章,并在分页中查看多个搜索结果。课堂实践一、任务名称:实现动态网页功能二、任务内容:编辑博客系统源码实现博客文章的编辑和查询。三、工具需求:PHP开发工具四、任务要求:完成实践练习后,由老师检查完成情况。课堂思考一、如何选择关系型和非关系型数据库?什么情况下适合使用每种类型的数据库?二、如何编写高效的SQL查询?三、如何平衡规范化和性能?四、如何使用索引来提高查询性能?课后拓展:权限控制安全测试请同学们对我们的数据库系统进行测试,特别关注数据库的权限管理和认证。找出用户权限控制机制和数据访问中存在的潜在问题,并思考如何进行改进和解决。THANK

YOUToBeContinued项目三

安全的数据库交换Web安全与防护本任务要点学习目标SQL注入漏洞的概念。SQL注入漏洞的分类。SQL注入漏洞的危害。熟悉SQL注入漏洞的类型。掌握SQL注入漏洞的特点任务二

SQL注入漏洞分类的理解目录CONTENTS01/SQL注入漏洞的概念02/SQL注入漏洞的分类03/SQL注入漏洞的危害SQL注入漏洞的概念01什么是SQL注入漏洞的概念?SQL是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交互时会采用SQL。而SQL注入是将Web页面的原URL、表单域或数据包输入的参数,修改拼接成SQL语句,传递给Web服务器,进而传给数据库服务器以执行数据库命令。如果Web应用程序的开发人员对用户所输入的数据或cookie等内容不进行过滤或验证(即存在注入点)就直接传输给数据库,就可能导致拼接的SQL被执行,获取对数据库的信息以及提权,发生SQL注入攻击。SQL注入漏洞的概念01另外,在网站开发过程中,开发人员使用动态字符串构造SQL语句,用来创建所需的应用,这种情况下SQL语句在程序的执行过程中被动态的构造使用,可以根据不同的条件产生不同的SQL语句.通过把恶意的SQL命令插入到Web表单中提交、输入域名或页面请求的查询字符串中,注入到后台数据库引擎,欺骗服务器执行恶意的SQL命令SQL注入漏洞没有对输入的数据进行过滤(过滤输入);没有对发送到数据库的数据进行转义(转义输出)。原因SQL注入漏洞的概念01SQL注入漏洞的分类02字符串类型的注入注入点数据类型数字类型的注入、字符串类型的注入、搜索型注入数据提交方式GET注入、POST注入、COOKIE注入、HTTP头注入获取信息方式基于布尔的盲注、基于时间的盲注、基于报错的注入、联合查询注入、堆查询注入SQL注入漏洞的危害031数据库信息泄漏数据库中存放的用户的隐私信息的泄露。2网页篡改通过操作数据库对特定网页进行篡改。3网站传播恶意软件修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。4数据库被恶意操作数据库服务器被攻击,数据库的系统管理员帐户被窜改。5服务器被远程控制被安装后门,经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。6破坏硬盘数据瘫痪全系统。课堂实践一、任务名称:探索SQL注入基础知识二、任务内容:通过模拟SQL注入攻击,理解SQL注入的原理、类型、危害,并学习基本的防御措施。三、工具需求:Burp、数据库管理工具四、任务要求:完成实践练习后,由老师

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论