《[精选]08Web编程安全.pptx》由会员分享,可在线阅读,更多相关《[精选]08Web编程安全.pptx(58页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、WebWeb编程平安编程平安第第第第8 8章章章章 1 Web概述1.1 Web系统Web是目前比较流行的软件编程方法之一,也是B/S模式的一种实现方式,由于Web编程的方法和传统C/S程序的不相同,因此,Web编程中的平安问题也具有其特殊性。本讲主要针对Web编程中的一些平安问题进行讲解。首先讲解了Web运行的原理,然后讲解了URL操作攻击,接下来针对Web程序的特性,讲解了四种页面之间传递状态的技术,并比较了它们的平安性,最后针对两种常见的平安问题:跨站脚本和SQL注入进行了详细表达。应该指出的是,本讲所列举的并不是Web编程平安的全部内容,只是讲述了一些常见的平安问题。Web运行的原理W
2、eb程序在架构上属于B/S浏览器/效劳器模式。随着Internet技术的兴起,B/S结构成为对C/S结构的一种改进。这种结构有如下特点:程序完全放在应用效劳器上,并在应用效劳器上运行,程序完全放在应用效劳器上,并在应用效劳器上运行,通过应用效劳器同数据库效劳器进行通信;通过应用效劳器同数据库效劳器进行通信;客户机上无需安装任何客户端软件,系统界面通过客户客户机上无需安装任何客户端软件,系统界面通过客户端浏览器展现,客户端只需要在浏览器内输入端浏览器展现,客户端只需要在浏览器内输入URL;修改了应用系统,只需要维护应用效劳器。修改了应用系统,只需要维护应用效劳器。由于B/S结构的优点,现在的网络
3、应用系统中,B/S系统占绝对主流地位。了解了什么是Web程序,我们再来深入了解一下Web技术的相关特点。在Web程序结构中,浏览器端与应用效劳器端采用请求/响应模式进行交互,如下图。过程描述如下:1:客户端:客户端通常是浏览器,如通常是浏览器,如IE、Firefox等等接受用户的输入,接受用户的输入,如用户名、密码、查询字符串等;如用户名、密码、查询字符串等;2:客户端向应用效劳器发送请求:输入之后,提交,客户端把请:客户端向应用效劳器发送请求:输入之后,提交,客户端把请求信息包含表单中的输入以及其他请求等信息发送到应用效劳求信息包含表单中的输入以及其他请求等信息发送到应用效劳器端,客户端等待
4、效劳器端的响应;器端,客户端等待效劳器端的响应;3:数据处理:应用效劳器端使用某种脚本语言,来访问数据库,:数据处理:应用效劳器端使用某种脚本语言,来访问数据库,查询数据,并获得查询结果;查询数据,并获得查询结果;4:数据库向应用效劳器中的程序返回结果;:数据库向应用效劳器中的程序返回结果;5:发送响应:应用效劳器端向客户端发送响应信息一般是动态:发送响应:应用效劳器端向客户端发送响应信息一般是动态生成的生成的HTML页面;页面;6:显示:由用户的浏览器解释:显示:由用户的浏览器解释HTML代码,呈现用户界面。代码,呈现用户界面。1.2 Web编程可以说,不同的Web编程语言都对应着不同的We
5、b编程方式,目前常见的应用于Web的编程语言主要有以下几种:1:CGI mon Gateway Interface。CGI全称是“公共网关接口,其程序须运行在效劳器端。该技术可以用来解释处理来自Web客户端的输入信息,并在效劳器进行相应的处理,最后将相应的结果反响给浏览器。CGI技术体系的核心是CGI程序,负责处理客户端的请求。早期有很多Web程序用CGI编写,但是由于其性能较低如对多用户的请求采用多进程机制和编程复杂,目前使用较少。2:PHPPHP:Hypertext Preprocessor。PHP是一种可嵌入HTML、可在效劳器端执行的内嵌式脚本语言,语言的风格比较类似于C语言,使用范围
6、比较广泛。其语法混合了 C、Java、Perl,比 CGI 或者 Perl能够更快速地执行动态网页。PHP执行效率比CGI要高许多;另外,它支持几乎所有流行的数据库以及操作系统。3:JSPJava Server Pages。JSP是由Sun公司提出,其他许多公司一起参与建立的一种动态网页技术标准。JSP技术在传统的网页HTML文件*.htm,*.html中嵌入Java程序段Scriptlet、Java表达式Expression或者JSP标记tag,从而形成JSP文件*.jsp,在效劳器端运行。和PHP一样,JSP开发的Web应用也是跨平台的,另外,JSP还支持自定义标签。JSP具备了Java技
7、术面向对象,平台无关性且平安可靠的优点,值得一提的是,众多大公司都支持JSP技术的效劳器,如IBM、Oracle公司等,使得JSP在商业应用的开发方面成为一种流行的语言。4:ASPActive Server Page ASP,意为“动态效劳器页面,是微软公司开发的一种编程标准,最初目的是代替CGI脚本,可以运行于效劳器端,与数据库和其它程序进行交互,可以包含HTML标记、文本、脚本以及 组件等。由于其编写简便,快速开发支持较好,在中小型Web应用中,比较流行。5:JavaScript JavaScript是一种基于对象和事件驱动的脚本语言,主要运行于客户端。JavaScript编写的程序在运行
8、前不必编译,客户端浏览器可以直接来解释执行JavaScript。一般情况下,一些不用和效劳器打交道的交互如账号是否为空,就可以直接在客户端进行,给用户提供了一个较好的体验,减轻了效劳器的负担。2 防止URL操作攻击2.1 URL的概念及其工作原理Web上有很多资源,如HTML文档、图像、视频、程序等,在访问时,它们的具体位置怎样确定呢?通常是利用URL。URLUniform Resoure Locator:统一资源定位器,是Internet上用来描述信息资源的字符串,可以帮助计算机来定位这些Web上可用资源。以下是一个典型的URL例子:可以看出,URI一般由3把局部组成:访问资源的命名机制访问
9、资源的命名机制协议协议:,实际上还有可能是,实际上还有可能是ftp等;等;存放资源的主机名:存放资源的主机名:localhost:8080;资源自身的名称,由路径表示:资源自身的名称,由路径表示:/Prj08/index.jsp;其他信息,如查询字符串等:其他信息,如查询字符串等:?username=guokehua。:/localhost:8080/Prj08/index.jsp?username=guokehua 另外有一个概念,叫做统一资源标识Uniform Resource Identifier,URI。在网络领域,熟悉URL概念的人比熟悉URI的要多,实际上,URL是URI命名机制的
10、一个子集。另外还有一个概念是URNUniform Resource Name,统一资源名称:也用来标识Internet上的资源,但是通过使用一个独立于位置的名称来实现。URN也是URI的一个子集。三者关系如下:2.2 URL操作攻击URL操作攻击的原理,一般是通过URL来猜测某些资源的存放地址,从而非法访问受保护的资源。举一个例子,假设有一个教学管理系统,教师输入自己的账号、密码,可以看到他所教的班级的学生信息。系统中有一个学生表:还有一个教师表:系统流程如下:1:首先呈现给教师的是登录页面,如::/localhost:8080/Prj08/login.jsp,该页面代码中,首先显示一个表单:
11、该表单将用户的账号和密码提交给一个控制器,控制器访问数据库,如果通过验证,则将用户信息存放在session内,跳到wel e页面。2:登录成功后,教师会看到以下图所示的wel e界面,:/localhost:8080/Prj08/wel e.jsp:该页面中,首先从session中获取登陆用户名,然后结合两个表进行查询,得到班级学生姓名,在列表中,显示了该教师所在班级的学生;后面的链接负责将该学生的学号传给display.jsp。3:用户点击“王海后面的“查看 链接,到达页面::/localhost:8080/Prj08/display.jsp?stuno=0035,显示效果如下:该页面主要是
12、根据传过来的值查询数据库中的学生表。将信息显示。外表上看上去,该程序没有任何问题。注意,前面的步骤中,点击“王海右边的“查看链接时,用于学生“王海从数据库获取数据的URL为::/localhost:8080/Prj08/display.jsp?stuno=0035因为王海的学号为0035,所以,从客户端源代码上讲,“王海右边的“查看链接看起来是这样的:该URL非常直观,可以从中看到是获取stuno为0035的数据,因此,给了攻击者时机,你可以很容易尝试将如下URL输入到地址栏中:表示命令数据库查询学号为0001的学生信息,当然,可能刚开始的尝试或许得不到结果该学号可能不存在,但是经过足够次数的
13、尝试,总可以给攻击者得到结果的时机。如输入::/localhost:8080/Prj08/display.jsp?stuno=0001查看 :/localhost:8080/Prj08/display.jsp?stuno=0024得到的内容为:因为“江民的学号就是“0024,所以“江民的信息就显示了出来。这里就造成了一个不平安的现象:老师可以查询不是他班级上的学生的信息。更有甚者,如果网站足够不平安的话,攻击者可以不用登陆,直接输入上面格式的URL如 :/localhost:8080/Prj08/display.jsp?stuno=0024,将信息显示出来。这样编写导致该学校网站为URL操作攻
14、击敞开了大门。2.3 解决方法如何解决以上URL操作攻击?程序员在编写Web应用的时候,可以从以下方面加以注意:1:为了防止非登陆用户进行访问,对于每一个只有登录成功才能访问的页面,应:为了防止非登陆用户进行访问,对于每一个只有登录成功才能访问的页面,应该进行该进行session的检查的检查session检查的内容在后面提到检查的内容在后面提到;2:为限制用户访问未被授权的资源,可在查询时将登录用户的用户名也考虑进去。为限制用户访问未被授权的资源,可在查询时将登录用户的用户名也考虑进去。如王海的学号为如王海的学号为0035,所以王海右边的,所以王海右边的“查看链接可以设计为这样:查看链接可以设
15、计为这样:这样,用于学生王海从数据库获取数据的这样,用于学生王海从数据库获取数据的URL为:为:在向数据库查询时,就可以首先检查“guokehua是否在登录状态,然后根据学号0035和教师用户名guokehua综合进行查询。这样,攻击者单独输入学号,或者输入学号和未登录的用户名,都无法显示结果。查看 :/localhost:8080/Prj08/display.jsp?stuno=0035&username=guokehua3 页面状态值平安我们知道,是无状态的协议。Web页面本身无法向下一个页面传递信息,如果需要让下一个页面得知该页面中的值,除非通过效劳器。因此,Web页面保持状态并传递给其
16、他页面,是一个重要技术。Web页面之间传递数据,是Web程序的重要功能,其流程如图8-3所示:其过程如下:页面页面1中输入数据中输入数据“guokehua,提交给效劳器端的,提交给效劳器端的P2;P2获取数据,响应给客户端。获取数据,响应给客户端。问题的关键在于页面问题的关键在于页面1中的数据如何提交,页面中的数据如何提交,页面2中的数据如何获得。中的数据如何获得。举一个简单的案例:页面1中定义了一个数值变量,并通过计算,将其平方的值显示在界面上;同时页面1中有一个链接到页面2,要求点击链接,在页面2中显示该数字的立方。很明显,该应用中,页面2必须知道页面1中定义的那个变量。在在 协议中一共有
17、协议中一共有4种方法来完成这件事情:种方法来完成这件事情:URL传值;传值;表单传值;表单传值;Cookie方法;方法;session方法。方法。这四种方法各有特点,各有平安性,本节将对其进行分析。3.1 URL传值以上面举的例子为例,可以将页面1中的变量通过URL方法传给页面2,格式为:如上例子,可以写成:urlP1.jsp运行,效果如下:页面2路径?参数名1=参数值1&参数名2=参数值2&页面底部显示了一个链接:到达urlP2,其链接内容为:相当于提交到效劳器的urlP2.jsp,并给其一个参数number,值为12。此处urlP2代码为:urlP2.jsp点击urlP1.jsp中的链接,
18、到达urlP2.jsp,效果如下:这说明,可以顺利实现值的传递。:/localhost:8080/Prj08/8-3/urlP2.jsp?number=12 该方法有如下问题:1:传输的数据只能是字符串,对数据类型具有一定限制;2:传输数据的值会在浏览器地址栏里面被看到。如上例子,当点击了链接到达urlP2.jsp,浏览器地址栏上的地址变为:number的值可以被人看到。从保密的角度讲,这是不平安的。特别是秘密性要求很严格的数据如密码,不应该用URL方法来传值。但是,URL方法并不是一无是处,由于其简单性和平台支持的多样性没有浏览器不支持URL,很多程序还是用URL传值比较方便。如下界面:可以
19、通过链接来删除学生。用URL方法显得简洁方便。3.2 表单传值上面举的例子,通过URL方法,传递的数据可能被看到。为了防止这个问题,我们可以用表单将页面1中的变量传给页面2,表单格式为:如上例子,可以写成formP1.jsp 运行,效果如下:隐藏表单网页制作中,input有一个type=hidden的选项,它是隐藏在网页中的的一个表单元素,并不在网页中显示出来,但是可以设置一些值。于是formP1代码可以改为formP1.jsp运行,效果为:传的值就被隐藏起来了。点击formP1.jsp中的按钮,到达formP2,效果为:但是,此时浏览器地址栏上的地址仍为:数据还是能够被看到。解决该问题的方法
20、是将form的action属性设置为post默认为get。于是,formP1的代码变为:formP1.jsp再点击,在formP2中正常显示结果,此时,浏览器地址栏上的URL为:这说明,可以顺利实现值的传递,并且无法看到传递的信息。该方法有如下问题:1:和URL方法类似,该方法传输的数据,也只能是字符串,对数据类型具有一定限制;2:传输数据的值虽然可以保证在浏览器地址栏内不被看到,但是在客户端源代码里面也会被看到。如上例子,在formP1.jsp中,翻开其源代码,如下:在中,要传递的number值被显示出来了。因此,从保密的角度讲,这也是不平安的。特别是秘密性要求很严格的数据如密码,也不推荐用
21、表单方法来传值。该数字的平方为:144 问题该隐藏表单中隐藏的内容非常直观,可以从客户端源代码中看到学号和课程编号,因此,给了攻击者时机,攻击者可以在客户端通过修改源代码来修改任意学生的成绩:如将客户端源代码改为:就可以修改0016学生的语文成绩了!同样,更为严重的问题是,如果网站足够不平安的话,攻击者可以不用登陆,随意设计表单来访问你的页面。请您输入张海的语文成绩可修改:输入成绩:3.3 Cookie方法在页面之间传递数据的过程中,Cookie是一种常见的方法。Cookie是一个小的文本数据,由效劳器端生成,发送给客户端浏览器,客户端浏览器如果设置为启用cookie,则会将这个小文本数据保存
22、到其某个目录下的文本文件内。客户端下次登录同一网站,浏览器则会自动将Cookie读入之后,传给效劳器端。效劳器端可以对该Cookie进行读取并验证当然也可以不读取。一般情况下,Cookie中的值是以key-value的形式进行表达的。3.3 Cookie方法基于这个原理,上面的例子可以用Cookie来进行。即:在第一个页面中,将要共享的变量值保存在客户端Cookie文件内,在客户端访问第二个页面时,由于浏览器自动将Cookie读入之后,传给效劳器端,因此只需要第二个页面中,由效劳器端页面读取这个Cookie值即可。不同的语言中对Cookie有不同的操作方法,下面以JSP为例,来编写代码。看页面
23、一的代码cookieP1.jsp。运行,显示结果为:页面上有一个链接到达cookieP2.jsp点击cookieP1中的链接,到达cookieP2,效果为:也能够得到结果。存在的问题在客户端的浏览器上,我们看不到任何的和传递的值相关的信息,说明在客户端浏览器中,Cookie中的数据是平安的。但是就此也不能说Cookie是完全平安的。因为Cookie是以文件形式保存在客户端的,客户端存储的Cookie文件就可能敌方获知。在本例中,内容被保存在Cookie文件,如果使用的是windows XP,C盘是系统盘,该文件保存在:C:Documents and Settings当前用户名Cookies下。
24、翻开该目录,可以看到里面有一个文件:翻开那个文本文件,内容为:number的值12可以被很清楚地找到。很明显,Cookie也不是绝对平安的。如果将用户名、密码等敏感信息保存在Cookie内,在用户离开客户机时不注意清空,这些信息容易泄露,因此Cookie在保存敏感信息方面具有潜在危险。解决Cookie平安的方法有很多,常见的有以下几种:w1:替代cookie。将数据保存在效劳器端,可选的是session方案;w2:及时删除cookie。要删除一个已经存在的Cookie,有以下几种方法:给一个给一个Cookie赋以空置;赋以空置;设置设置Cookie的失效时间为当前时间,让该的失效时间为当前时间
25、,让该Cookie在当前页面的浏览完之在当前页面的浏览完之后就被删除了;后就被删除了;通过浏览器删除通过浏览器删除Cookie。如在。如在IE中,可以选择中,可以选择“工具工具“Internet选项选项“常规,在里面点击常规,在里面点击“删删除除Cookies,就可以删除文件夹中的,就可以删除文件夹中的Cookie。如下。如下图:图:w4:禁用Cookie。很多浏览器中都设置了禁用Cookie的方法,如IE中,可以在“工具“Internet选项“隐私中,将隐私级别设置为禁用Cookie,如下图:3.4 session方法前面几种方法在传递数据时,有一个共同的问题是内容都保存在客户端,因为具有泄
26、露的危险性。如果在不考虑效劳器负载的情况下,将数据保存在效劳器端,是一个较好的方案,这就是session方法。本质上讲,会话session的含义是指某个用户在网站上的有始有终的一系列动作的集合。例如,用户在访问网站时,session就是指从用户登入站点到到关闭浏览器所经过的这段过程。session中的数据可以被同一个客户在网站的一次会话过程共享。但是对于不同客户来说,每个人的session是不同的。效劳器上的session分配情况如下图:同样,不同语言对于session的控制不一样,但是原理类似。以JSP为例,本节的例子也可以用session方法来做,首先是sessionP1。运行,效果为:点
27、击链接可以到达sessionP2。点击链接之后,效果为:可见,也可以实现页面之间数据的传递。session方法和前面几个方法相比,是相对平安的。session经常用于保存用户登录状态。比方用户登录成功之后要访问好几个页面,但是每个页面都需要知道是哪个用户在登录,此时就可以将用户的用户名保存在session内。存在的问题session机制最大的不平安因素是sessionId可以被攻击者截获,如果攻击者通过一些手段知道了sessionId,由于sessionId是客户端寻找效劳器端session对象的唯一标识,攻击者就有可能根据sesionId来访问效劳器端的session对象,得知session
28、中的内容,从而实施攻击。在session机制中,很多人认为:只要浏览器关闭,会话结束,session就消失了。其实不然,浏览器关闭,会话结束,对于客户端来说,已经无法直接再访问原来的那个session,但并不代表session在效劳器端会马上消失。除非程序通知效劳器删除一个session,否则效劳器会一直保存这个session对象,直到session超时失效,被垃圾收集机制收集掉。但是令人遗憾的是,客户在关闭浏览器时,一般不会通知效劳器。由于关闭浏览器不会导致session被删除,因此,客户端关闭之后,session还未失效的情况下,就给了攻击者以时机来获取session中的内容。虽然sess
29、ionId是随机的长字符串,通常比较难被猜测到,这在某种程度上可以加强其平安性,但是一旦被攻击者获得,就可以进行一些攻击活动,如:攻击者获取客户sessionId,然后攻击者自行伪造一个相同的sessionId,访问效劳器,实际上等价于伪装成该用户进行操作。为了防止以上因为sessionId泄露而造成的平安问题,可以采用如下方法:1:在效劳器端,可以在客户端登陆系统时,尽量不要使用单一的sessionId对用户登陆进行验证。可以通过一定的手段,不时地变更用户的sessionId;2:在客户端,应该在浏览器关闭时删除效劳器端的session,也就是说在关闭时必须通知效劳器端。最简单的方法,可以用
30、Javascript实现。4 SQL注入4.1 SQL注入的原理SQL注入在英文中称为SQL Injection,是黑客对Web数据库进行攻击的常用手段之一。在这种攻击方式中,恶意代码被插入到查询字符串中,然后将该字符串传递到数据库效劳器进行执行,根据数据库返回的结果,获得某些数据并发起进一步攻击,甚至获取管理员帐号密码、窃取或者篡改系统数据。为了让读者了解SQL注入,首先我们举一个简单的例子。首先,数据库中有一个表格:有一个登录页面,输入用户的账号、密码,查询数据库,进行登录,为了将问题简化,我们仅仅将其SQL打印出来供大家分析。详见代码login.jsp。在文本框内输入查询信息,提交,能够
31、到达loginResult.jsp显示登录结果。运行login.jsp,输入正常数据如guokehua,guokehua:提交,显示的结果是:熟悉SQL的读者可以看到,该结果没有任何问题,数据库将对该输入进行验证,看能否返回结果,如果有,表示登录成功,否则表示登录失败。但是该程序有漏洞。比方,客户输入账号为:“aa OR 1=1-,密码随便输入,如“aa:查询显示的结果为:该程序中,SQL语句为:SELECT*FROM USERS WHERE ACCOUNT=aa OR 1=1-AND PASSWORD=aa 其中,-表示注释,因此,真正运行的SQL语句是:SELECT*FROM USERS
32、WHERE ACCOUNT=aa OR 1=1 此处,“1=1永真,所以该语句将返回USERS表中的所有记录。网站受到了SQL注入的攻击。另一种方法是使用通配符进行注入。比方,有一个页面,可以对学生的姓名STUNAME从STUDENTS表中进行模糊查询:同样,为了将问题简化,我们仅仅将其SQL打印出来供大家分析。代码详见query.jsp。运行,效果如下:在文本框内输入查询信息,提交,能够到达queryResult.jsp显示登录结果。运行query.jsp,输入正常数据如guokehua,提交,效果为:同样,该结果没有任何问题,数据库将进行模糊查询并且返回结果。如果什么都不输入,提交,效果为
33、:说明该程序不允许无条件的模糊查询。但是该程序也有漏洞。比方,客户输入:“%-:查询显示的结果为:该程序中,-表示注释,因此,真正运行的SQL语句是:SELECT*FROM STUDENTS WHERE STUNAME LIKE%该语句中,也会将STUDENTS中所有的内容显示出来。相当于程序又允许了无条件的模糊查询。更有甚者,可以在文本框内输入:“%;DELETE FROM STUDENTS-:查询显示的结果为:这样,就可以删除表STUDENTS中所有的内容。提示:该攻击中,数据库中表名STUDENTS可以通过猜测的方法得到,如果猜测不准确,那就没方法攻击了。4.2 SQL注入攻击的危害wS
34、QL注入攻击的主要危害包括:非法读取、篡改、添加、删除数据库中的数据;非法读取、篡改、添加、删除数据库中的数据;盗取用户的各类敏感信息,获取利益;盗取用户的各类敏感信息,获取利益;通过修改数据库来修改网页上的内容;通过修改数据库来修改网页上的内容;私自添加或删除账号;私自添加或删除账号;注入木马;等等。注入木马;等等。危害性大由于SQL 注入攻击一般利用的是利用的是SQL 语法,这使得于所有基于SQL 语言标准的数据库软件,如SQL Server,Oracle,MySQL,DB2等都有可能受到攻击,并且攻击的发生和Web编程语言本身也无关,如ASP、JSP、PHP,在理论上都无法完全幸免。SQ
35、L 注入攻击的危险是比较大的。很多其他的攻击,如DoS等,可能通过防火墙等手段进行阻拦,但是而对于SQL 注入攻击,由于注入访问是通过正常用户端进行的,所以普通防火墙对此不会发出警示,一般只能通过程序来控制,而SQL攻击一般可以直接访问数据库进而甚至能够获得数据库所在的效劳器的访问权,因此,危害相当严重。w1:认真对表单输入进行校验,从查询变量中滤去尽可能多的可疑字符。可以利用一些手段,测试输入字符串变量的内容,定义一个格式为只接受的格式,只有此种格式下的数据才能被接受,拒绝其他输入的内容。w2:在程序中,组织SQL语句时,应该尽量将用户输入的字符串以参数的形式来进行包装,而不是直接嵌入SQL
36、语言。w3:严格区分数据库访问权限。在权限设计中,对于应用软件的使用者,一定要严格限制权限,没有必要给他们数据库对象的建立、删除等权限。这样,即使在收到SQL注入攻击时,有一些对数据库危害较大的工作,如DROP TABLE语句,也不会被执行,w4:多层架构下的防治策略。在多层环境下,用户输入数据的校验与数据库的查询被别离成多个层次。4.3 防范方法w5:对于数据库敏感的、重要的数据,不要以明文显示,要进行加密。关于加密的方法,读者可以参考后面的章节。w6:对数据库查询中的出错信息进行屏蔽,尽量减少攻击者根据数据库的查询出错信息来猜测数据库特征的可能。w7:由于SQL注入有时伴随着猜测,因此,如
37、果发现一个IP不断进行登录或者短时间内不断进行查询,可以自动拒绝他的登陆;也可以建立攻击者IP地址备案机制,对曾经的攻击者IP进行备案,发现此IP,直接拒绝。w8:可以使用专业的漏洞扫描工具来寻找可能被攻击的漏洞。w9、静夜四无邻,荒居旧业贫。5月-235月-23Sunday,May 14,2023w10、雨中黄叶树,灯下白头人。18:24:5318:24:5318:245/14/2023 6:24:53 PMw11、以我独沈久,愧君相见频。5月-2318:24:5318:24May-2314-May-23w12、故人江海别,几度隔山川。18:24:5318:24:5318:24Sunday,
38、May 14,2023w13、乍见翻疑梦,相悲各问年。5月-235月-2318:24:5318:24:53May 14,2023w14、他乡生白发,旧国见青山。14 五月 20236:24:53 下午18:24:535月-23w15、比不了得就不比,得不到的就不要。五月 236:24 下午5月-2318:24May 14,2023w16、行动出成果,工作出财富。2023/5/14 18:24:5318:24:5314 May 2023w17、做前,能够环视四周;做时,你只能或者最好沿着以脚为起点的射线向前。6:24:53 下午6:24 下午18:24:535月-23w9、没有失败,只有暂时停止
39、成功!。5月-235月-23Sunday,May 14,2023w10、很多事情努力了未必有结果,但是不努力却什么改变也没有。18:24:5318:24:5318:245/14/2023 6:24:53 PMw11、成功就是日复一日那一点点小小努力的积累。5月-2318:24:5318:24May-2314-May-23w12、世间成事,不求其绝对圆满,留一份缺乏,可得无限完美。18:24:5318:24:5318:24Sunday,May 14,2023w13、不知香积寺,数里入云峰。5月-235月-2318:24:5318:24:53May 14,2023w14、意志坚强的人能把世界放在手
40、中像泥块一样任意揉捏。14 五月 20236:24:53 下午18:24:535月-23w15、楚塞三湘接,荆门九派通。五月 236:24 下午5月-2318:24May 14,2023w16、少年十五二十时,步行夺得胡马骑。2023/5/14 18:24:5318:24:5314 May 2023w17、空山新雨后,天气晚来秋。6:24:53 下午6:24 下午18:24:535月-23w9、杨柳散和风,青山澹吾虑。5月-235月-23Sunday,May 14,2023w10、阅读一切好书如同和过去最杰出的人谈话。18:24:5318:24:5318:245/14/2023 6:24:53
41、 PMw11、越是没有本领的就越加自命非凡。5月-2318:24:5318:24May-2314-May-23w12、越是无能的人,越喜欢挑剔别人的错儿。18:24:5318:24:5318:24Sunday,May 14,2023w13、知人者智,自知者明。胜人者有力,自胜者强。5月-235月-2318:24:5318:24:53May 14,2023w14、意志坚强的人能把世界放在手中像泥块一样任意揉捏。14 五月 20236:24:53 下午18:24:535月-23w15、最具挑战性的挑战莫过于提升自我。五月 236:24 下午5月-2318:24May 14,2023w16、业余生活
42、要有意义,不要越轨。2023/5/14 18:24:5318:24:5314 May 2023w17、一个人即使已登上顶峰,也仍要自强不息。6:24:53 下午6:24 下午18:24:535月-23MOMODA POWERPOINTLorem ipsum dolor sit amet,consectetur adipiscing elit.Fusce id urna blandit,eleifend nulla ac,fringilla purus.Nulla iaculis tempor felis ut cursus.感感 谢谢 您您 的的 下下 载载 观观 看看专家告诉演讲完毕,谢谢观看!