版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1网络安全原理与应用(第三版)第五章Web安全5.1
Web安全概述5.1.1
Web服务Web是一个运行于Internet上的基本的client/server应用。Browser/Server,客户为浏览器,服务器为WebServer;在Web应用中,WebServer后面常常与数据库打交道服务器:规定了服务器的传输设定、信息传输格式及服务器的基本开放结构;客户机:Web浏览器,用于向服务器发送资源索取请求,并将接收到的信息进行解码和显示;通信协议:Web浏览器与服务器之间遵照HTTP协议进行通信HPPT协议它定义了Web浏览器向Web服务器发送索取Web页面请求的格式,以及Web页面在Internet上的传输方式。HTTP工作过程:(1)Web服务器在80端口等候Web浏览器的请求;(2)Web浏览器通过三次握手与服务器建立起TCP/IP连接,然后Web浏览器向Web服务器发送索取页面的请求:Get/dailynews.html(3)服务器以相应的文件为内容响应Web浏览器的请求5.1
Web安全概述5.1.2Web服务面临的安全威胁(1)注入攻击:如果应用程序没有正确过滤用户输入,攻击者可以输入特定的SQL代码来读取、修改或删除数据库中的数据。常见的有SQL注入、NoSQL注入、OS注入、LDAP注入等。跨站脚本攻击(XSS):当应用程序未对用户输入进行适当的过滤和转义时,攻击者可以在网页中注入恶意脚本。当其他用户访问这个网页时,这些脚本会在他们的浏览器中执行,可能导致用户的敏感信息被窃取,或者被诱导执行某些操作。跨站请求伪造(CSRF):攻击者通常会诱导用户访问一个恶意网站,然后利用用户的身份在目标网站上执行敏感操作,如更改密码、发送邮件等。5.1.2Web服务面临的安全威胁(2)文件上传漏洞:如果应用程序没有对上传的文件进行严格的检查和过滤,攻击者可以上传恶意文件,例如可执行的脚本文件或包含恶意代码的文件。这些文件可能会被执行,导致攻击者能够控制服务器或窃取敏感数据。反序列化漏洞:当应用程序从不受信任的来源接收序列化的数据时,如果没有进行适当的验证和过滤,攻击者可以注入恶意对象,导致应用程序执行恶意代码或泄露敏感数据。目录遍历漏洞:如果应用程序没有对用户请求的文件路径进行严格的检查和过滤,攻击者可以通过构造特定的请求来访问服务器上的敏感文件或执行恶意代码。敏感信息泄露:如果应用程序在处理敏感数据时未采取适当的安全措施,如加密存储、访问控制等,可能导致敏感数据泄露,例如数据库连接字符串、API密钥等。5.1.2Web服务面临的安全威胁(3)会话劫持:当攻击者能够窃取用户的会话令牌时,他们可以利用这个令牌冒充用户进行操作。会话劫持可以通过多种方式实现,例如嗅探网络通信或利用应用程序的会话管理漏洞。文件包含漏洞:如果应用程序没有对包含的文件进行严格的检查和过滤,攻击者可以指定包含恶意文件,导致应用程序执行恶意代码或泄露敏感数据。代码注入:当应用程序没有对用户输入的数据进行适当的过滤和验证时,攻击者可以注入恶意代码。例如,如果应用程序允许用户上传自定义脚本或配置文件,并且没有进行适当的验证和过滤,攻击者可以上传包含恶意代码的文件,导致应用程序执行这些代码。拒绝服务:拒绝服务攻击是指故意导致应用程序的可用性降低。典型的示例是:让Web应用程序负载过度,使其无法为普通用户服务。5.2Web服务的安全问题5.2.1Web服务器的安全问题(1)未及时更新:Web服务器服务器和相关组件可能会有安全漏洞的存在。(2)不安全的配置:错误的配置选项和权限设置可能会导致Web服务器安全漏洞。(3)DDoS攻击:分布式拒绝服务(DDoS)攻击可能会导致服务器性能下降或完全不可用。(4)SQL注入和跨站脚本攻击(5)未加密的数据传输:如果未正确配置SSL/TLS证书,敏感数据的传输可能会受到威胁。5.2.1Web服务器的安全问题(6)默认凭据和漏洞路径:攻击者可以尝试使用默认的管理员凭据来入侵服务器,或者寻找已知的漏洞路径。(7)不安全的插件和模块:某些第三方插件和模块可能存在安全漏洞,因此应该审查并定期更新它们。(8)访问控制不当:不正确的访问控制列表(ACL)和权限设置可能会导致不希望的访问。(9)错误消息处理不当:默认的错误消息可能包含敏感信息,会泄露服务器配置和其他信息给潜在的攻击者。(10)监控和日志不足:监控和日志记录的不足可能会导致无法及时检测和应对安全威胁。5.2.2ASP与Access的安全性ASP+Access解决方案的主要安全隐患来自Access数据库的安全性,其次在于ASP网页设计过程中的安全漏洞。1.Access数据库的存储隐患在ASP+Access应用系统中,如果获得或者猜到Access数据库的存储路径和数据库名,则该数据库就可以被下载到本地。2.Access数据库的解密隐患由于Access数据库的加密机制非常简单,所以即使数据库设置了密码,解密也很容易。5.2.2ASP与Access的安全性3.源代码的安全隐患由于ASP程序采用的是非编译性语言,这大大降低了程序源代码的安全性。任何人只要进入站点,就可以获得源代码,从而造成ASP应用程序源代码的泄露。4.程序设计中的安全隐患ASP代码利用表单(Form)实现与用户交互的功能,而相应的内容会反映在浏览器的地址栏中,如果不采用适当的安全措施,只要记下这些内容,就可以绕过验证直接进入某一页面。5.2.3Java与JavaScript的安全性1.JavaScript的安全性问题(1)JavaScript可以欺骗用户,将用户本地硬盘上的文件上载到Internet上的任意主机。(2)JavaScript能获得用户本地硬盘上的目录列表,这既代表对隐私的侵犯又代表安全风险。(3)JavaScript能监视用户某段时间内访问的所有网页,捕捉URL并将它们传到Internet上的某台主机中。(4)JavaScript能够触发NetscapeNavigator送出电子邮件信息而不需经过用户允许。这个技术可被用来获得用户的电子邮件地址。(5)嵌入网页的JavaScript代码是公开的,缺乏安全保密功能。5.2.3Java与JavaScript的安全性(1)跨站请求伪造攻击(CSRF):攻击者可能会利用JavaApplet的漏洞,通过伪造请求来执行恶意操作。例如,攻击者可能会伪造一个表单提交请求,导致用户在不知情的情况下执行某些敏感操作。(2)代码注入攻击:攻击者可能会向JavaApplet注入恶意代码,从而控制应用程序的行为。例如,攻击者可能会注入恶意脚本,窃取用户的敏感信息或执行其他恶意操作。(3)资源泄露:JavaApplet可能存在资源泄露漏洞,攻击者可以利用这些漏洞获取敏感信息,例如本地文件路径、系统配置等。(4)权限提升:JavaApplet可能存在权限提升漏洞,攻击者可以利用这些漏洞获取更高的权限,从而执行敏感操作。5.2.4Cookie的安全性Cookies是网站服务器发送到用户浏览器的文本文件,它可以记录用户的偏好、登录信息、浏览习惯等。在浏览器第一次连接Web服务器时,由服务器端写入到客户端的系统中。当用户再次访问该网站时,网站可以通过读取Cookies来识别用户,从而提供个性化的服务或恢复用户的浏览状态。Cookies的技术使得网站能够提供更加便捷和个性化的服务,改善HTTP协议的无状态性,增强用户体验。
5.2.4Cookie的安全性Cookie可以记住用户和跟踪用户的行为;可能影响用户的隐私和安全网站和应用程序的开发人员应该遵循安全原则确保用户数据的隐私和安全,并减少潜在的安全威胁。
如,不存储隐私数据、敏感数据、安全标志;Cookie可以设置过期时间,防止长时间使用;避免第三方Cookie引入跟踪和隐私问题。
无痕浏览器通常会阻止第三方Cookie和其他追踪技术的使用,以防止第三方网站跟踪用户的行踪。这些追踪技术可以用于收集用户的个人信息、搜索历史和浏览习惯,从而侵犯用户的隐私。5.3Web客户端的安全恶意网站:用户可能会访问恶意网站,这些网站可能包含恶意代码,例如恶意软件、恶意脚本或钓鱼攻击,以尝试窃取敏感信息或感染用户的设备。插件和扩展:浏览器的插件和扩展可能存在安全漏洞,攻击者可以利用这些漏洞来入侵用户的系统或窃取用户的数据。弹出窗口和广告:恶意广告和弹出窗口可能包含恶意代码,通过点击这些广告或弹出窗口,用户的设备可能受到威胁。5.3Web客户端的安全跨站点脚本(XSS):XSS攻击是一种常见的攻击方式,攻击者通过注入恶意脚本到网页中,可以窃取用户的Cookie、Session数据或其他敏感信息。跨站点请求伪造(CSRF):攻击者可以诱使用户在未经许可的情况下执行操作,例如更改账户设置或进行金融交易,因此用户可能会受到损失。密码管理问题:浏览器内置的密码管理器可能不够安全,存储密码的方式可能会受到威胁,如果浏览器密码被泄露,用户的账户可能会受到攻击。不安全的扩展和附加组件:用户安装的浏览器扩展和附加组件可能不是完全可信的,一些恶意扩展可能会监视用户的行为或操纵浏览器。5.3Web客户端的安全不安全的连接:使用不安全的HTTP连接而不是加密的HTTPS连接可能会导致敏感数据在传输过程中被窃取。隐私问题:浏览器可能会收集用户的浏览数据和个人信息,这些信息可能会被滥用,或者在不经用户允许的情况下共享给第三方。浏览器漏洞:浏览器自身可能包含漏洞,攻击者可以利用这些漏洞来执行恶意代码或入侵用户的系统。5.3.1防范恶意网页恶意网页是指嵌入了用JavaApplet、JavaScript或者ActiveX设计的非法恶意程序的网页,通常用于攻击用户的计算机或窃取其敏感信息。当用户浏览包含恶意代码的网页时,这些程序会利用浏览器的漏洞,进行修改用户的注册表、修改浏览器的默认设置、获取用户的个人资料、删除硬盘文件、格式化硬盘等非法操作。5.3.1防范恶意网页(1)增加安全意识,约束上网行为。(2)安装防病毒软件。(3)注册表加锁。(4)禁用远程注册表操作服务。(5)避免重蹈覆辙。(6)禁用ActiveX插件、控件和Java脚本。(7)使用更安全的浏览器。5.3.2隐私侵犯1.网上数据搜集的方法(1)通过用户的IP地址进行。(2)通过Cookie获得用户的个人信息。(3)因特网服务提供商在搜集、下载、集中、整理和利用用户个人隐私材料方面具有得天独厚的有利条件(4)使用WWW的欺骗技术。(5)网络诈骗邮件。5.3.2隐私侵犯2.网上数据搜集对个人隐私造成的侵害信息泄露风险:当个人数据被收集时,如果这些数据未得到适当的保护,可能会被泄露或被不法分子利用,从而造成财务或身份盗窃等危害。社交媒体隐私问题:在社交媒体上发布个人照片、位置信息、个人状态等都可能被滥用,导致个人隐私受到侵犯。例如,住址泄露、私人照片被传播等。个人权利侵犯:个人隐私是每个人的基本权利之一。在互联网时代,也需要确保个人的隐私权利得到尊重和保护。没有个人隐私的保护,将导致个人信息遭受不法分子的侵害。歧视风险:大数据可能会产生偏差和歧视。例如,大数据分析可能会偏向某个群体,导致对其他群体的忽视和排斥。安全隐患:大数据通常存储在云端,由于网络连接方式的特殊性,存在安全隐患。例如,大数据可能会被黑客攻击,导致数据泄露或篡改。5.4SSL技术5.4.1SSL概述SSL(SecureSocketLayer)协议提供的安全特性:(1)利用认证技术识别身份。在客户机向服务器可利用数字证书实现双向身份证验,但通常SSL协议只要求验证服务器端。(2)利用加密技术保证通道的保密性。在客户机和服务器进行数据交换之前,通过握手协议交换加密密钥,传输的消息均为加密的消息。(3)利用数字签名技术保证信息传送的完整性。对相互传送的数据进行Hash计算并加载数字签名,从而保证信息的完整性。5.4.2SSL体系结构SSL位于TCP/IP协议栈中的传输层和应用层之间,利用TCP协议提供可靠的端到端安全服务。5.4.2SSL体系结构1.SSL协议的记录层记录层的功能是根据当前会话状态给出参数,对当前连接中要传输的高层数据实施压缩/解压缩、加/解密、计算/校验MAC等操作。5.4.2SSL体系结构2.握手协议握手协议(HandshakeProtocol)是SSL上层3个协议中最重要的一个,作用是产生会话的安全属性。当客户和服务器准备通信时,它们就要协商:身份验证(可选)、协议版本、密钥交换算法、压缩算法、加密算法,并且生成密钥和完成密钥交换。5.4.2SSL体系结构3.改变加密规格协议改变加密规格协议的消息只包含一个字节,值为1。这条消息的唯一功能是使得延迟状态改变为当前状态,该消息更新了在这一连接中应用的密码机制。4.报警协议报警协议的每个消息包含两个字节。第一个字节表示报警的严重程度,可取值为1和2,分别表示警告(warning)和致命(fatal);第二个字节包含一个编码,用于指明具体的警告类型。如,致命的警告消息有:unexpected_message、bad_record_mac、decompression_failure、handshake_failure、illegal_parameter;5.5Web服务器的安全配置5.5.1IIS的安装与配置5.5.2IIS的安全配置方法HTTPS使用HTTPS时,下列的元素将被加密:请求文件的URL文件的内容浏览器表格(用户填写的)BS及SB的cookiesHTTP头的内容HTTPS的相关文件:RFC2818IIS配置HTTPS第一步:获取证书为Web服务器配置SSL要在IIS中启用SSL,首先必须获得用于加密和解密通过网络传输的信息的证书。IIS具有自己的证书请求工具,您可以使用此工具向证书颁发机构发送证书请求。导入证书到控制台添加HTTPS绑定,包括(类型,IP,端口,域名,SSL证书)通过https://访问网站5.6SQL注入攻击5.6.1SQL注入攻击原理SQL注入(StructuredQueryLanguageInjection)是指攻击者利用web应用程序对用户输入数据的合法性不作检测或检测不严格的弱点,从客户端提交特殊的数据库查询代码,欺骗数据库服务器执行非授权的任意查询,从而使服务端数据库泄露敏感信息,甚至利用数据库注入攻击获取高权限(如管理员账号)执行危险操作实现入侵。5.6.1SQL注入攻击原理SQL语句是一种用于与数据库交互的结构化查询语言。如:当用户执行登录操作时,实际上向后端发送了一条SQL请求以确认身份。SQL注入漏洞的本质:后端代码执行过程中,将用户输入的数据也当作代码来执行,违背代码和数据分离原则SQL注入漏洞有两个关键条件:用户能控制输入的内容;
后端对前端传递过来的数据没有过滤,或过滤不严谨;5.6.1SQL注入攻击原理步骤:攻击者在Web表单(POST、GET)、域名或URL页面请求中插入针对性构造的特殊SQL命令;Web服务器缺少对用户输入的合法性判断;服务器端执行含有恶意SQL代码的请求;执行未经授权的数据库操作,如增加、删除、查询、修改操作如用户输入:username='OR'1'='1'--和password='OR'1'='1'--,在这个情况下,构造的SQL查询语句将变成:SELECT*FROMusersWHEREusername=''OR'1'='1'--'ANDpassword=''OR'1'='1'SQL注入攻击危害(1)数据库数据泄露:攻击者可以通过注入恶意SQL语句来访问、检索或删除数据库中的敏感信息。(2)身份验证绕过:攻击者可以利用SQL注入来绕过身份验证,以管理员或其他特权用户的身份执行操作。(3)数据篡改:攻击者可以修改数据库中的数据,从而对应用程序的正常功能造成破坏。(4)拒绝服务攻击:通过执行恶意的SQL查询,攻击者可以耗尽数据库资源,导致拒绝服务。SQL注入漏洞检测技术主要分为白盒和黑盒两种测试技术白盒测试技术需要获取源代码来发掘程序代码中可能存在的SQL注入漏洞,常用的技术包括约束生成和求解、符号执行、数据流分析等方法。黑盒技术无需获取源代码,通过使用自动化的SQL注入扫描器发现漏洞,是使用较为广泛的方法。自动的SQL注入工具:Sqlmap,Pangolin,Havij,SQLIer,SQLID……为了保障网络安全,建议定期进行安全漏洞检测和修复。但切记使用这些工具时,必须遵守相关法律法规和道德标准,不得用于非法活动。预防SQL注入攻击使用参数化的SQL查询语句,确保用户输入的数据不会被解释为SQL代码的一部分。如:SELECT*FROMEmployeesWHEREDepartment=@Department在程序中对用户输入进行有效的验证和过滤,只允许预期的数据类型和格式。例如,限制输入长度、使用正则表达式验证等。给予数据库用户最小必要的权限,限制其对数据库的访问范围。不要向用户显示详细的错误信息,特别是关于数据库结构和查询的信息。开发人员应采用安全编码实践,避免拼接字符串来构建SQL查询。检测和阻止SQL注入攻击使用Web应用程序防火墙(WAF)来检测和阻止可能的SQL注入攻击;针对SQL查询的执行引入异常处理机制,以捕获和处理执行过程中的异常情况,防止详细错误信息泄露给攻击者;对应用程序进行定期的安全审计,包括对数据库查询的检查,以发现和修复潜在的SQL注入漏洞。;使用自动化的漏洞扫描工具来定期扫描应用程序,以识别潜在的SQL注入漏洞;及时应用数据库系统和应用程序框架的安全更新和修补,以防止已知漏洞被利用。5.6.2SQL注入攻击方法第一步:SQL注入点探测。第二步:收集后台数据库信息。第三步:猜解后端数据库结构。第四步:寻找Web后台管理入口或其他敏感信息。5.6.3SQL注入攻击检测技术(1)基于规则匹配的检测方法基于规则匹配的检测方法是一种用于检测SQL注入攻击的常用技术。这种方法主要通过匹配已知的SQL注入模式或特征来检测潜在的注入点。基于规则匹配的检测方法具有简单、快速的特点,但也有一些局限性。例如,它可能无法检测到未知的注入模式或复杂的注入技巧。此外,需要提前构建知识规则库。如果规则定义不当或不完整,可能会产生误报或漏报的情况。5.6.3SQL注入攻击检测技术(2)基于网络爬虫技术的检测网络爬虫是一种自动的访问网页元素程序。基于爬虫的SQL注入自动化检测的思想是将网络爬虫技术和Fuzzing技术结合,实现自动化与智能化SQL注入检测。基于网络爬虫技术的SQL注入漏洞检测具有自动化、高效的特点,能够快速检测出潜在的注入点。然而,这种方法也可能存在误报或漏报的情况,并且对于复杂的注入技巧或隐藏的注入点可能无法检测到。5.6.3SQL注入攻击检测技术(3)基于动态分析的检测方法基于动态分析的SQL注入漏洞检测是一种通过观察应用程序在运行时的行为来检测SQL注入漏洞的方法。这种方法通过执行一系列的输入并观察应用程序的响应来判断是否存在SQL注入漏洞。基于动态分析的SQL注入漏洞检测能够检测到隐藏的注入点,并且能够根据应用程序的实际行为进行准确的判断。然而,这种方法需要执行应用程序并观察其响应,因此可能需要较长的时间和资源。此外,对于一些复杂的注入技巧或隐藏的注入点,可能仍然存在误报或漏报的情况。5.6.3SQL注入攻击检测技术(4)基于污点分析技术的漏洞检测方法基于污点分析技术的SQL注入漏洞检测方法是一种通过追踪应用程序中数据流来检测SQL注入漏洞的方法。这种方法利用污点跟踪技术,标记应用程序中的输入数据,并观察这些数据在应用程序中的传播和变化。基于污点分析技术的SQL注入漏洞检测方法能够准确地检测到潜在的注入点,并给出详细的上下文信息。然而,这种方法需要深入了解应用程序的数据流和内部结构,并且需要仔细配置和调整以获得最佳效果。此外,对于一些复杂的注入技巧或隐藏的注入点,可能仍然存在误报或漏报的情况。5.6.4常见的SQL注入攻击方式1.联合查询注入在UNION操作中注入额外的SQL语句,将结果合并到原始查询中,从而获取未经授权的数据例如:应用程序的查询可能类似于:SELECTproduct_id,product_name,priceFROMproductsWHEREcategory_id='用户输入';攻击者可能尝试构造一个恶意的输入,例如:1'UNIONSELECT1,username,passwordFROMusers;--,SELECTproduct_id,product_name,priceFROMproductsWHEREcategory_id='1'UNIONSELECT1,username,passwordFROMusers;--'5.6.4常见的SQL注入攻击方式2.盲注(1)布尔盲注
当Web页面仅返回True和False(布尔值),那么就可以利用布尔盲注,根据页面返回的True或者是False判断SQL语句的猜解是否正确,从而获得后端数据库的信息。布尔盲注一般适用于页面没有回显字段(不支持联合查询),且web页面返回True或者false。构造SQL语句,利用and,or等关键字使其后的语句的值为True或False,从而使web页面返回True或False,达到注入的目的来获取信息
5.6.4常见的SQL注入攻击方式2.盲注(2)时间盲注时间盲注又称延迟注入,它提交对执行时间敏感的函数sql语句,通过执行时间的长短来判断是否执行成功,假设一个简单的用户身份验证查询语句:SELECT*FROMusersWHEREusername='输入的用户名'ANDpassword='输入的密码’;攻击者可能尝试在用户名字段中输入:admin'ANDIF(1=1,SLEEP(5),0)--这个查询时出现5秒的延迟,攻击者可以确定条件为真,即用户名是admin
5.6.4常见的SQL注入攻击方式3.报错注入构造恶意的SQL,触发数据库报错,而在报错信息中就存在着我们想要的信息假设一个简单的用户身份验证查询语句:Floor()报错注入例如:
SELECT*FROMproductsWHEREprice=FLOOR((用户输入的价格));构造:SELECT*FROMproductsWHEREprice=FLOOR((1);SELECT*FROMusersWHEREusername='admin'--));updatexml报错注入利用数据库的updatexml函数来导致错误,以获取敏感信息。这个函数通常用于更新XML字段中的数据。updatexml(xml_document,xpath_string,new_value)extractvalue报错注入extractvalue(xml_document,xpath_string),第一个参数可以传入目标xml文档,第二个参数是用Xpath路径法表示的查找路径,作用是从目标XML中返回包含所查询值的字符串。例如:语句SELECTExtractValue('<a><b>ccc</b></a>','/a/b');的执行结果为:ccc。报错注入的用法,与updatexml相似5.6.4常见的SQL注入攻击方式4.堆叠注入将语句堆叠在一起进行查询。mysql_multi_query()支持多条sql语句同时执行,语句间以分号(;)分隔,在;结束一个SQL语句后继续构造下一条语句,两条语句会一起执行,这就是堆叠注入例如:SELECT*FROMusersWHEREusername='用户输入1'ANDpassword='用户输入2’,构造:
SELECT*FROMusersWHEREusername='';INSERTINTOusers(username,password)VALUES('attacker','hacked')--'ANDpassword='';5.6.5防范SQL注入关键措施1.参数化查询:使用参数化查询语句而不是字符串拼接。这样可以确保用户输入的数据不会被解释为SQL代码的一部分,而是作为参数传递到查询中。2.输入验证和过滤:对用户输入进行有效的验证和过滤,确保只允许预期的数据类型和格式。使用白名单验证来限制用户输入的字符集,拒绝不合法的输入。3.ORM(对象关系映射)使用ORM库,它们通常会自动处理参数化查询,减少手动拼接SQL语句的机会。5.6.5防范SQL注入关键措施4.最小权限原则:为数据库用户分配最小必要的权限,以降低潜在攻击者的影响范围。5.错误处理在生产环境中限制详细错误信息的显示,确保不向用户泄露敏感的数据库结构和查询信息。将错误信息记录到日志中,以便审计和调试。6.使用存储过程将SQL逻辑封装在存储过程中,这样可以减少直接执行SQL查询的机会。5.6.5防范SQL注入关键措施7.Web应用程序防火墙(WAF)使用WAF来检测和防御SQL注入攻击。WAF可以根据已知的攻击模式和特征来拦截潜在的注入尝试。8.会话管理和凭证存储使用安全的会话管理和凭证存储机制,确保用户身份验证和授权信息的安全性,防止攻击者通过SQL注入绕过身份验证。9.定期审计和漏洞扫描定期审计应用程序的代码和数据库访问逻辑,使用漏洞扫描工具来发现潜在的SQL注入漏洞。10.安全编码实践在开发过程中采用安全编码实践,避免拼接字符串来构建SQL查询。使用框架和库,以减少手动处理SQL查询的机会。5.7跨站脚本攻击(XSS)XSS(Cross-SiteScripting)攻击称为跨站脚本攻击。是指攻击者在Web页面中提交恶意脚本,当用户浏览包含恶意脚本的页面时,在不知情的情况下执行该脚本,导致被攻击的行为。攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、保密的网页信息、会话和Cookie等各种内容。与SQL注入类似,XSS也是利用提交恶意信息来实现攻击的行为。但是XSS一般提交的是Javascript脚本,运行在Web前端,也就是用户的浏览器;而SQL注入提交的SQL指令是在后台数据库服务器执行。所以两者攻击的对象是不一样。5.7.1XSS分类1.反射型XSS反射型XSS中,攻击者通过构造恶意的URL,将脚本注入到用户的浏览器中,然后由浏览器执行。该攻击类型得名于恶意脚本“反射”到用户的浏览器,而不是存储在目标网站的数据库中,又称非持续性XSS。5.7.1XSS分类2存储型XSS存储型XSS,又称持续性跨站脚本攻击。在此类攻击中,脚本被存储在目标网站的数据库中,然后在用户请求页面时从数据库中检索并传递给用户的浏览器执行。5.7.1XSS分类3.DOM型XS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年综合性商业大楼施工承包合同版B版
- 医院视频监控室年终总结(3篇)
- 劳动仲裁案管辖权异议申请书(32篇)
- 基于嵌入式linux课程设计
- 工程力学课程设计感想
- 中药学执业药师职业资格考试考点习题及答案解析
- 中小学学生欺凌和校园暴力预防指导手册
- 自制环保颜色课程设计
- 《战机代号中国》课件
- 探索博物馆课程设计
- 大学美育(同济大学版)学习通超星期末考试答案章节答案2024年
- 二年级上册加减乘除口算题及竖式计算
- 初中语文:非连续性文本阅读练习(含答案)
- 办公室改造装修项目投标方案(技术方案)
- 国家安全教育学习通超星期末考试答案章节答案2024年
- 精益生产篇(培训资料)
- 七年级上册数学《有理数》计算题综合训练带答案
- 大学英语精读原文1-6册完整版
- 2022-2023学年高教版中职语文基础模块上册月考卷四
- 交通刮蹭私了协议书范本
- 《冷战史专题》笔记
评论
0/150
提交评论