发布者:售前苒苒 | 本文章发表于:2022-03-24 阅读数:6685
物理机是什么?很多用户都不能理解,为什么会有物理机跟云主机的区别。那么物理机是什么呢?“物理机是相对于虚拟机而言的对实体计算机的称呼。物理机提供给虚拟机以硬件环境,有时也称为“寄主”或“宿主”。通过物理机和虚拟机的配合,一台计算机上可以安装上多个操作系统(一个外界操作系统和虚拟机中的数个操作系统),并且几个操作系统间还可以实现通信,就像是有多台计算机一样。”接下来快快网络苒苒就给大家讲解一下物理机跟云主机有什么不同。
物理机和云主机有什么不同的?平时我们见到的计算机就是物理机了;云主机通常是在一个高性能的服务器上,搭建虚拟化平台,分割计算与存储资源给多个虚拟的计算机主机,对于用户而言,每一台这样的主机就是一台云主机了
物理机IP,内网IP都是什么意思?是这样的:物理IP是指电脑上网卡的MAC地址,介质访问控制)地址,也叫硬件地址,长度是48比特(6字节),由16进制的数字组成,分为前24位和后24位:MAC地址对应于OSI参考模型的第二层数据链路层,工作在数据链路层的交换机维护着计算机MAC地址和自身端口的数据库,交换机根据收到的数据帧中的“目的MAC地址”字段来转发数据帧;网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。内网IP地址就是局域网的的IP地址,也就是内网内每一台主机上的独立的IP地址;它与外网的不同,一般是私有C类地址,而公网的地址则一般是A类与B类的地址;
虚拟化一个物理机是什么意思?虚拟化物理机,指的是要把一台真实的计算机转化成一个虚拟机以便它可以在虚拟机上运行。虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响。虚拟化使用软件的方法重新定义划分IT资源,可以实现IT资源的动态分配,灵活调度,跨域共享,提高IT资源利用率,使IT资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。虚拟化的主要目的是对IT基础设施进行简化。它可以简化对资源以及对资源管理的访问。消费者可以是一名最终用户,应用程序,访问资源或与资源进行交互的服务。资源是一个提供一定功能的实现,它可以基于标准的接口接受输入和提供输出。资源可以是硬件,例如服务器,磁兹盘,网络,仪器;也可以是软件,例如Web服务。
消费者通过受虚拟资源支持的标准接口对资源进行访问。使用标准接口,可以在IT基础设施发生变化时将对消费者的破坏降到最低。例如,最终用户可以重用这些技巧,因为他们与虚拟资源进行交互的方式并没有发生变化,即使底层物理资源或实现已经发生了变化,他们也不会受到影响。另外,应用程序也不需要进行升级或应用补丁,因为标准接口并没有发生变化。
IT基础设施的总体管理也可以得到简化,因为虚拟化降低了消费者与资源之间的耦合程度。因此,消费者并不依赖于资源的特定实现。利用这种松耦合关系,管理员可以在保证管理工作对消费者产生最少影响的基础上实现对IT基础设施的管理。管理操作可以手工完成,也可以半自动地完成,或者通过服务级协定(SLA)驱动来自动完成。
通过以上信息大家都更能理解什么是物理机了吧,而快快网络作为国内专业的服务器运营商,主营国内高防物理机以及云服务器等产品,硬件配置多重选择,售后24小时在线服务,有服务器方面的需求可以随时联系快快网络苒苒Q712730904
怎么知道服务器是不是被攻击了?
在维护服务器时,最让管理员头疼的就是不确定服务器是否被攻击了。攻击方式多样,尤其是在流量和资源消耗方面,如果不及时发现和处理,可能会导致网站或应用无法正常运行。那怎么知道服务器是不是被攻击了呢?本文将为你详细解答如何通过几种关键指标来判断服务器是否正在受到攻击。1. 异常流量激增流量的异常波动是服务器是否被攻击的一个关键信号。如果你发现服务器流量突然猛增,但却没有相应的业务增长,这可能就是DDoS(分布式拒绝服务攻击)的前兆。特别是在访问量通常较为稳定的情况下,流量激增异常就需要警惕了。使用流量监控工具可以帮助你更早地发现异常。2. CPU和内存的使用率飙升如果服务器的CPU和内存资源在短时间内被大量消耗,导致服务器反应迟缓或宕机,这可能是遭遇了恶意的流量攻击或暴力破解尝试。通过实时监控服务器的资源使用情况,可以有效发现这些异常。当CPU持续保持高负载时,可能正在遭受攻击。3. 频繁的错误日志当服务器受到攻击时,错误日志中的错误数量可能会大幅上升。例如,如果服务器的访问日志显示大量的404或500错误,可能说明有人在尝试扫描网站的漏洞或者试图进行攻击。定期查看错误日志能够帮助快速识别攻击类型。4. 不正常的连接数如果你的服务器出现了大量的未正常关闭的TCP连接,或者连接请求数急剧上升,很可能是遭遇了SYN Flood、CC攻击等类型的攻击。这些攻击会让服务器的资源耗尽,无法响应正常的请求。你可以通过网络监控工具检查当前的网络连接状态,以判断是否有攻击发生。5. 网站加载速度明显下降如果用户反映网站加载速度明显变慢或者无法打开,除了服务器资源超载之外,另一种可能性就是服务器被恶意攻击了。DDoS攻击通过海量请求占用服务器带宽和资源,导致正常用户的访问受到影响。6. 无法访问服务器或网站如果你发现自己的服务器或网站突然无法访问,那么有较大概率是遭遇了攻击,尤其是在排除了硬件故障和网络问题的情况下。攻击者可能通过封堵端口或其他方式使服务器暂时瘫痪。在日常维护服务器时,快速识别服务器是否被攻击至关重要。通过监控流量、资源使用、连接状态以及分析日志,可以有效发现攻击的早期迹象。一旦发现服务器正在遭受攻击,立即采取应对措施,诸如启用防火墙、限制访问、联系高防服务提供商等,都是帮助你迅速恢复服务的关键。通过这些方式,你可以更好地保护你的服务器免受攻击的影响。
漏扫是什么?全面解析漏洞扫描技术
漏洞扫描是网络安全领域的重要技术手段,通过自动化工具检测系统、应用或网络中的潜在安全风险。它能帮助企业和个人及时发现安全隐患,避免数据泄露或服务中断。无论是网站运营者还是IT管理员,了解漏扫的基本原理和实际应用都很有必要。 漏扫工具如何检测安全漏洞? 漏洞扫描工具通过模拟黑客攻击行为,对目标系统进行全方位检测。它们会发送特定请求,分析系统响应,比对已知漏洞特征库,从而识别潜在风险。现代漏扫工具不仅能发现常见漏洞,还能评估漏洞的严重程度,为修复提供优先级建议。 为什么企业需要定期进行漏扫? 网络安全威胁不断演变,新漏洞层出不穷。定期漏扫能确保及时发现新增风险,防止黑客利用已知漏洞入侵。特别是对于处理敏感数据的金融机构和电商平台,漏扫更是合规要求的一部分。通过持续监控,企业可以建立主动防御机制,降低安全事件发生概率。 漏洞扫描技术正变得越来越智能,从简单的端口扫描发展到深度应用层检测。选择适合的漏扫方案需要考虑系统复杂度、业务需求和预算限制。无论是自建扫描团队还是使用第三方漏扫服务,关键在于建立常态化的安全检测机制,让防护跑在攻击前面。
SQL注入攻击的种类和防范方法
观察近来的一些安全事件及其后果,安全专家们已经得到一个结论,这些威胁主要是通过SQL注入造成的。虽然有许多文章讨论了SQL注入,但今天所讨论的内容也许可帮助你检查自己的服务器,并采取相应防范措施。 知彼知己,方可取胜。首先要清楚SQL注入攻击有哪些种类。 SQL注入攻击的种类 1.没有正确过滤转义字符 在用户的输入没有为转义字符过滤时,就会发生这种形式的注入式攻击,它会被传递给一个SQL语句。这样就会导致应用程序的终端用户对数据库上的语句实施操纵。比方说,下面的这行代码就会演示这种漏洞: statement := "SELECT * FROM users WHERE name = ’" + userName + "’;" 这种代码的设计目的是将一个特定的用户从其用户表中取出,但是,如果用户名被一个恶意的用户用一种特定的方式伪造,这个语句所执行的操作可能就不仅仅是代码的作者所期望的那样了。例如,将用户名变量(即username)设置为: a’ or ’t’=’t,此时原始语句发生了变化: SELECT * FROM users WHERE name = ’a’ OR ’t’=’t’; 如果这种代码被用于一个认证过程,那么这个例子就能够强迫选择一个合法的用户名,因为赋值’t’=’t永远是正确的。 在一些SQL服务器上,如在SQL Server中,任何一个SQL命令都可以通过这种方法被注入,包括执行多个语句。下面语句中的username的值将会导致删除“users”表,又可以从“data”表中选择所有的数据(实际上就是透露了每一个用户的信息)。 a’;DROP TABLE users; SELECT * FROM data WHERE name LIKE ’% 这就将最终的SQL语句变成下面这个样子: SELECT * FROM users WHERE name = ’a’;DROP TABLE users; SELECT * FROM DATA WHERE name LIKE ’%’; 其它的SQL执行不会将执行同样查询中的多个命令作为一项安全措施。这会防止攻击者注入完全独立的查询,不过却不会阻止攻击者修改查询。 2.Incorrect type handling 如果一个用户提供的字段并非一个强类型,或者没有实施类型强制,就会发生这种形式的攻击。当在一个SQL语句中使用一个数字字段时,如果程序员没有检查用户输入的合法性(是否为数字型)就会发生这种攻击。例如: statement := "SELECT * FROM data WHERE id = " + a_variable + ";" 从这个语句可以看出,作者希望a_variable是一个与“id”字段有关的数字。不过,如果终端用户选择一个字符串,就绕过了对转义字符的需要。例如,将a_variable设置为:1;DROP TABLE users,它会将“users”表从数据库中删除,SQL语句变成:SELECT * FROM DATA WHERE id = 1;DROP TABLE users; 3.数据库服务器中的漏洞 有时,数据库服务器软件中也存在着漏洞,如MYSQL服务器中mysql_real_escape_string()函数漏洞。这种漏洞允许一个攻击者根据错误的统一字符编码执行一次成功的SQL注入式攻击。 4.盲目SQL注入式攻击 当一个Web应用程序易于遭受攻击而其结果对攻击者却不见时,就会发生所谓的盲目SQL注入式攻击。有漏洞的网页可能并不会显示数据,而是根据注入到合法语句中的逻辑语句的结果显示不同的内容。这种攻击相当耗时,因为必须为每一个获得的字节而精心构造一个新的语句。但是一旦漏洞的位置和目标信息的位置被确立以后,一种称为Absinthe的工具就可以使这种攻击自动化。 5.条件响应 注意,有一种SQL注入迫使数据库在一个普通的应用程序屏幕上计算一个逻辑语句的值: SELECT booktitle FROM booklist WHERE bookId = ’OOk14cd’ AND 1=1 这会导致一个标准的面面,而语句 SELECT booktitle FROM booklist WHERE bookId = ’OOk14cd’ AND 1=2在页面易于受到SQL注入式攻击时,它有可能给出一个不同的结果。如此这般的一次注入将会证明盲目的SQL注入是可能的,它会使攻击者根据另外一个表中的某字段内容设计可以评判真伪的语句。 6.条件性差错 如果WHERE语句为真,这种类型的盲目SQL注入会迫使数据库评判一个引起错误的语句,从而导致一个SQL错误。例如: SELECT 1/0 FROM users WHERE username=’Ralph’。显然,如果用户Ralph存在的话,被零除将导致错误。 7.时间延误 时间延误是一种盲目的SQL注入,根据所注入的逻辑,它可以导致SQL引擎执行一个长队列或者是一个时间延误语句。攻击者可以衡量页面加载的时间,从而决定所注入的语句是否为真。 以上仅是对SQL攻击的粗略分类。但从技术上讲,如今的SQL注入攻击者们在如何找出有漏洞的网站方面更加聪明,也更加全面了。出现了一些新型的SQL攻击手段。黑客们可以使用各种工具来加速漏洞的利用过程。我们不妨看看the Asprox Trojan这种木马,它主要通过一个发布邮件的僵尸网络来传播,其整个工作过程可以这样描述:首先,通过受到控制的主机发送的垃圾邮件将此木马安装到电脑上,然后,受到此木马感染的电脑会下载一段二进制代码,在其启动时,它会使用搜索引擎搜索用微软的ASP技术建立表单的、有漏洞的网站。搜索的结果就成为SQL注入攻击的靶子清单。接着,这个木马会向这些站点发动SQL注入式攻击,使有些网站受到控制、破坏。访问这些受到控制和破坏的网站的用户将会受到欺骗,从另外一个站点下载一段恶意的JavaScript代码。最后,这段代码将用户指引到第三个站点,这里有更多的恶意软件,如窃取口令的木马。 以前,我们经常警告或建议Web应用程序的程序员们对其代码进行测试并打补丁,虽然SQL注入漏洞被发现和利用的机率并不太高。但近来攻击者们越来越多地发现并恶意地利用这些漏洞。因此,在部署其软件之前,开发人员应当更加主动地测试其代码,并在新的漏洞出现后立即对代码打补丁。 防御和检查SQL注入的手段 1.使用参数化的过滤性语句 要防御SQL注入,用户的输入就绝对不能直接被嵌入到SQL语句中。恰恰相反,用户的输入必须进行过滤,或者使用参数化的语句。参数化的语句使用参数而不是将用户输入嵌入到语句中。在多数情况中,SQL语句就得以修正。然后,用户输入就被限于一个参数。下面是一个使用Java和JDBC API例子: PreparedStatement prep = conn.prepareStatement("SELECT * FROM USERS WHERE PASSWORD=?"); prep.setString(1, pwd); 总体上讲,有两种方法可以保证应用程序不易受到SQL注入的攻击,一是使用代码复查,二是强迫使用参数化语句的。强迫使用参数化的语句意味着嵌入用户输入的SQL语句在运行时将被拒绝。不过,目前支持这种特性的并不多。如H2 数据库引擎就支持。 2.还要避免使用解释程序,因为这正是黑客们借以执行非法命令的手段。 3.防范SQL注入,还要避免出现一些详细的错误消息,因为黑客们可以利用这些消息。要使用一种标准的输入确认机制来验证所有的输入数据的长度、类型、语句、企业规则等。 4.使用专业的漏洞扫描工具。但防御SQL注入攻击也是不够的。攻击者们目前正在自动搜索攻击目标并实施攻击。其技术甚至可以轻易地被应用于其它的Web架构中的漏洞。企业应当投资于一些专业的漏洞扫描工具,如大名鼎鼎的Acunetix的Web漏洞扫描程序等。一个完善的漏洞扫描程序不同于网络扫描程序,它专门查找网站上的SQL注入式漏洞。最新的漏洞扫描程序可以查找最新发现的漏洞。 5.最后一点,企业要在Web应用程序开发过程的所有阶段实施代码的安全检查。首先,要在部署Web应用之前实施安全测试,这种措施的意义比以前更大、更深远。企业还应当在部署之后用漏洞扫描工具和站点监视工具对网站进行测试。 Web安全拉警报已经响起,安全形式异常严峻,企业绝对不应当草率从事。安全重于泰山 新一代云安全引领者-------云安全领域服务商------------ 快快网络小潘QQ:712730909
阅读数:51268 | 2022-06-10 14:15:49
阅读数:47767 | 2024-04-25 05:12:03
阅读数:34438 | 2023-06-15 14:01:01
阅读数:19187 | 2023-10-03 00:05:05
阅读数:17747 | 2022-02-17 16:47:01
阅读数:13581 | 2023-05-10 10:11:13
阅读数:11982 | 2023-04-16 11:14:11
阅读数:10666 | 2021-11-12 10:39:02
阅读数:51268 | 2022-06-10 14:15:49
阅读数:47767 | 2024-04-25 05:12:03
阅读数:34438 | 2023-06-15 14:01:01
阅读数:19187 | 2023-10-03 00:05:05
阅读数:17747 | 2022-02-17 16:47:01
阅读数:13581 | 2023-05-10 10:11:13
阅读数:11982 | 2023-04-16 11:14:11
阅读数:10666 | 2021-11-12 10:39:02
发布者:售前苒苒 | 本文章发表于:2022-03-24
物理机是什么?很多用户都不能理解,为什么会有物理机跟云主机的区别。那么物理机是什么呢?“物理机是相对于虚拟机而言的对实体计算机的称呼。物理机提供给虚拟机以硬件环境,有时也称为“寄主”或“宿主”。通过物理机和虚拟机的配合,一台计算机上可以安装上多个操作系统(一个外界操作系统和虚拟机中的数个操作系统),并且几个操作系统间还可以实现通信,就像是有多台计算机一样。”接下来快快网络苒苒就给大家讲解一下物理机跟云主机有什么不同。
物理机和云主机有什么不同的?平时我们见到的计算机就是物理机了;云主机通常是在一个高性能的服务器上,搭建虚拟化平台,分割计算与存储资源给多个虚拟的计算机主机,对于用户而言,每一台这样的主机就是一台云主机了
物理机IP,内网IP都是什么意思?是这样的:物理IP是指电脑上网卡的MAC地址,介质访问控制)地址,也叫硬件地址,长度是48比特(6字节),由16进制的数字组成,分为前24位和后24位:MAC地址对应于OSI参考模型的第二层数据链路层,工作在数据链路层的交换机维护着计算机MAC地址和自身端口的数据库,交换机根据收到的数据帧中的“目的MAC地址”字段来转发数据帧;网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。内网IP地址就是局域网的的IP地址,也就是内网内每一台主机上的独立的IP地址;它与外网的不同,一般是私有C类地址,而公网的地址则一般是A类与B类的地址;
虚拟化一个物理机是什么意思?虚拟化物理机,指的是要把一台真实的计算机转化成一个虚拟机以便它可以在虚拟机上运行。虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响。虚拟化使用软件的方法重新定义划分IT资源,可以实现IT资源的动态分配,灵活调度,跨域共享,提高IT资源利用率,使IT资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。虚拟化的主要目的是对IT基础设施进行简化。它可以简化对资源以及对资源管理的访问。消费者可以是一名最终用户,应用程序,访问资源或与资源进行交互的服务。资源是一个提供一定功能的实现,它可以基于标准的接口接受输入和提供输出。资源可以是硬件,例如服务器,磁兹盘,网络,仪器;也可以是软件,例如Web服务。
消费者通过受虚拟资源支持的标准接口对资源进行访问。使用标准接口,可以在IT基础设施发生变化时将对消费者的破坏降到最低。例如,最终用户可以重用这些技巧,因为他们与虚拟资源进行交互的方式并没有发生变化,即使底层物理资源或实现已经发生了变化,他们也不会受到影响。另外,应用程序也不需要进行升级或应用补丁,因为标准接口并没有发生变化。
IT基础设施的总体管理也可以得到简化,因为虚拟化降低了消费者与资源之间的耦合程度。因此,消费者并不依赖于资源的特定实现。利用这种松耦合关系,管理员可以在保证管理工作对消费者产生最少影响的基础上实现对IT基础设施的管理。管理操作可以手工完成,也可以半自动地完成,或者通过服务级协定(SLA)驱动来自动完成。
通过以上信息大家都更能理解什么是物理机了吧,而快快网络作为国内专业的服务器运营商,主营国内高防物理机以及云服务器等产品,硬件配置多重选择,售后24小时在线服务,有服务器方面的需求可以随时联系快快网络苒苒Q712730904
怎么知道服务器是不是被攻击了?
在维护服务器时,最让管理员头疼的就是不确定服务器是否被攻击了。攻击方式多样,尤其是在流量和资源消耗方面,如果不及时发现和处理,可能会导致网站或应用无法正常运行。那怎么知道服务器是不是被攻击了呢?本文将为你详细解答如何通过几种关键指标来判断服务器是否正在受到攻击。1. 异常流量激增流量的异常波动是服务器是否被攻击的一个关键信号。如果你发现服务器流量突然猛增,但却没有相应的业务增长,这可能就是DDoS(分布式拒绝服务攻击)的前兆。特别是在访问量通常较为稳定的情况下,流量激增异常就需要警惕了。使用流量监控工具可以帮助你更早地发现异常。2. CPU和内存的使用率飙升如果服务器的CPU和内存资源在短时间内被大量消耗,导致服务器反应迟缓或宕机,这可能是遭遇了恶意的流量攻击或暴力破解尝试。通过实时监控服务器的资源使用情况,可以有效发现这些异常。当CPU持续保持高负载时,可能正在遭受攻击。3. 频繁的错误日志当服务器受到攻击时,错误日志中的错误数量可能会大幅上升。例如,如果服务器的访问日志显示大量的404或500错误,可能说明有人在尝试扫描网站的漏洞或者试图进行攻击。定期查看错误日志能够帮助快速识别攻击类型。4. 不正常的连接数如果你的服务器出现了大量的未正常关闭的TCP连接,或者连接请求数急剧上升,很可能是遭遇了SYN Flood、CC攻击等类型的攻击。这些攻击会让服务器的资源耗尽,无法响应正常的请求。你可以通过网络监控工具检查当前的网络连接状态,以判断是否有攻击发生。5. 网站加载速度明显下降如果用户反映网站加载速度明显变慢或者无法打开,除了服务器资源超载之外,另一种可能性就是服务器被恶意攻击了。DDoS攻击通过海量请求占用服务器带宽和资源,导致正常用户的访问受到影响。6. 无法访问服务器或网站如果你发现自己的服务器或网站突然无法访问,那么有较大概率是遭遇了攻击,尤其是在排除了硬件故障和网络问题的情况下。攻击者可能通过封堵端口或其他方式使服务器暂时瘫痪。在日常维护服务器时,快速识别服务器是否被攻击至关重要。通过监控流量、资源使用、连接状态以及分析日志,可以有效发现攻击的早期迹象。一旦发现服务器正在遭受攻击,立即采取应对措施,诸如启用防火墙、限制访问、联系高防服务提供商等,都是帮助你迅速恢复服务的关键。通过这些方式,你可以更好地保护你的服务器免受攻击的影响。
漏扫是什么?全面解析漏洞扫描技术
漏洞扫描是网络安全领域的重要技术手段,通过自动化工具检测系统、应用或网络中的潜在安全风险。它能帮助企业和个人及时发现安全隐患,避免数据泄露或服务中断。无论是网站运营者还是IT管理员,了解漏扫的基本原理和实际应用都很有必要。 漏扫工具如何检测安全漏洞? 漏洞扫描工具通过模拟黑客攻击行为,对目标系统进行全方位检测。它们会发送特定请求,分析系统响应,比对已知漏洞特征库,从而识别潜在风险。现代漏扫工具不仅能发现常见漏洞,还能评估漏洞的严重程度,为修复提供优先级建议。 为什么企业需要定期进行漏扫? 网络安全威胁不断演变,新漏洞层出不穷。定期漏扫能确保及时发现新增风险,防止黑客利用已知漏洞入侵。特别是对于处理敏感数据的金融机构和电商平台,漏扫更是合规要求的一部分。通过持续监控,企业可以建立主动防御机制,降低安全事件发生概率。 漏洞扫描技术正变得越来越智能,从简单的端口扫描发展到深度应用层检测。选择适合的漏扫方案需要考虑系统复杂度、业务需求和预算限制。无论是自建扫描团队还是使用第三方漏扫服务,关键在于建立常态化的安全检测机制,让防护跑在攻击前面。
SQL注入攻击的种类和防范方法
观察近来的一些安全事件及其后果,安全专家们已经得到一个结论,这些威胁主要是通过SQL注入造成的。虽然有许多文章讨论了SQL注入,但今天所讨论的内容也许可帮助你检查自己的服务器,并采取相应防范措施。 知彼知己,方可取胜。首先要清楚SQL注入攻击有哪些种类。 SQL注入攻击的种类 1.没有正确过滤转义字符 在用户的输入没有为转义字符过滤时,就会发生这种形式的注入式攻击,它会被传递给一个SQL语句。这样就会导致应用程序的终端用户对数据库上的语句实施操纵。比方说,下面的这行代码就会演示这种漏洞: statement := "SELECT * FROM users WHERE name = ’" + userName + "’;" 这种代码的设计目的是将一个特定的用户从其用户表中取出,但是,如果用户名被一个恶意的用户用一种特定的方式伪造,这个语句所执行的操作可能就不仅仅是代码的作者所期望的那样了。例如,将用户名变量(即username)设置为: a’ or ’t’=’t,此时原始语句发生了变化: SELECT * FROM users WHERE name = ’a’ OR ’t’=’t’; 如果这种代码被用于一个认证过程,那么这个例子就能够强迫选择一个合法的用户名,因为赋值’t’=’t永远是正确的。 在一些SQL服务器上,如在SQL Server中,任何一个SQL命令都可以通过这种方法被注入,包括执行多个语句。下面语句中的username的值将会导致删除“users”表,又可以从“data”表中选择所有的数据(实际上就是透露了每一个用户的信息)。 a’;DROP TABLE users; SELECT * FROM data WHERE name LIKE ’% 这就将最终的SQL语句变成下面这个样子: SELECT * FROM users WHERE name = ’a’;DROP TABLE users; SELECT * FROM DATA WHERE name LIKE ’%’; 其它的SQL执行不会将执行同样查询中的多个命令作为一项安全措施。这会防止攻击者注入完全独立的查询,不过却不会阻止攻击者修改查询。 2.Incorrect type handling 如果一个用户提供的字段并非一个强类型,或者没有实施类型强制,就会发生这种形式的攻击。当在一个SQL语句中使用一个数字字段时,如果程序员没有检查用户输入的合法性(是否为数字型)就会发生这种攻击。例如: statement := "SELECT * FROM data WHERE id = " + a_variable + ";" 从这个语句可以看出,作者希望a_variable是一个与“id”字段有关的数字。不过,如果终端用户选择一个字符串,就绕过了对转义字符的需要。例如,将a_variable设置为:1;DROP TABLE users,它会将“users”表从数据库中删除,SQL语句变成:SELECT * FROM DATA WHERE id = 1;DROP TABLE users; 3.数据库服务器中的漏洞 有时,数据库服务器软件中也存在着漏洞,如MYSQL服务器中mysql_real_escape_string()函数漏洞。这种漏洞允许一个攻击者根据错误的统一字符编码执行一次成功的SQL注入式攻击。 4.盲目SQL注入式攻击 当一个Web应用程序易于遭受攻击而其结果对攻击者却不见时,就会发生所谓的盲目SQL注入式攻击。有漏洞的网页可能并不会显示数据,而是根据注入到合法语句中的逻辑语句的结果显示不同的内容。这种攻击相当耗时,因为必须为每一个获得的字节而精心构造一个新的语句。但是一旦漏洞的位置和目标信息的位置被确立以后,一种称为Absinthe的工具就可以使这种攻击自动化。 5.条件响应 注意,有一种SQL注入迫使数据库在一个普通的应用程序屏幕上计算一个逻辑语句的值: SELECT booktitle FROM booklist WHERE bookId = ’OOk14cd’ AND 1=1 这会导致一个标准的面面,而语句 SELECT booktitle FROM booklist WHERE bookId = ’OOk14cd’ AND 1=2在页面易于受到SQL注入式攻击时,它有可能给出一个不同的结果。如此这般的一次注入将会证明盲目的SQL注入是可能的,它会使攻击者根据另外一个表中的某字段内容设计可以评判真伪的语句。 6.条件性差错 如果WHERE语句为真,这种类型的盲目SQL注入会迫使数据库评判一个引起错误的语句,从而导致一个SQL错误。例如: SELECT 1/0 FROM users WHERE username=’Ralph’。显然,如果用户Ralph存在的话,被零除将导致错误。 7.时间延误 时间延误是一种盲目的SQL注入,根据所注入的逻辑,它可以导致SQL引擎执行一个长队列或者是一个时间延误语句。攻击者可以衡量页面加载的时间,从而决定所注入的语句是否为真。 以上仅是对SQL攻击的粗略分类。但从技术上讲,如今的SQL注入攻击者们在如何找出有漏洞的网站方面更加聪明,也更加全面了。出现了一些新型的SQL攻击手段。黑客们可以使用各种工具来加速漏洞的利用过程。我们不妨看看the Asprox Trojan这种木马,它主要通过一个发布邮件的僵尸网络来传播,其整个工作过程可以这样描述:首先,通过受到控制的主机发送的垃圾邮件将此木马安装到电脑上,然后,受到此木马感染的电脑会下载一段二进制代码,在其启动时,它会使用搜索引擎搜索用微软的ASP技术建立表单的、有漏洞的网站。搜索的结果就成为SQL注入攻击的靶子清单。接着,这个木马会向这些站点发动SQL注入式攻击,使有些网站受到控制、破坏。访问这些受到控制和破坏的网站的用户将会受到欺骗,从另外一个站点下载一段恶意的JavaScript代码。最后,这段代码将用户指引到第三个站点,这里有更多的恶意软件,如窃取口令的木马。 以前,我们经常警告或建议Web应用程序的程序员们对其代码进行测试并打补丁,虽然SQL注入漏洞被发现和利用的机率并不太高。但近来攻击者们越来越多地发现并恶意地利用这些漏洞。因此,在部署其软件之前,开发人员应当更加主动地测试其代码,并在新的漏洞出现后立即对代码打补丁。 防御和检查SQL注入的手段 1.使用参数化的过滤性语句 要防御SQL注入,用户的输入就绝对不能直接被嵌入到SQL语句中。恰恰相反,用户的输入必须进行过滤,或者使用参数化的语句。参数化的语句使用参数而不是将用户输入嵌入到语句中。在多数情况中,SQL语句就得以修正。然后,用户输入就被限于一个参数。下面是一个使用Java和JDBC API例子: PreparedStatement prep = conn.prepareStatement("SELECT * FROM USERS WHERE PASSWORD=?"); prep.setString(1, pwd); 总体上讲,有两种方法可以保证应用程序不易受到SQL注入的攻击,一是使用代码复查,二是强迫使用参数化语句的。强迫使用参数化的语句意味着嵌入用户输入的SQL语句在运行时将被拒绝。不过,目前支持这种特性的并不多。如H2 数据库引擎就支持。 2.还要避免使用解释程序,因为这正是黑客们借以执行非法命令的手段。 3.防范SQL注入,还要避免出现一些详细的错误消息,因为黑客们可以利用这些消息。要使用一种标准的输入确认机制来验证所有的输入数据的长度、类型、语句、企业规则等。 4.使用专业的漏洞扫描工具。但防御SQL注入攻击也是不够的。攻击者们目前正在自动搜索攻击目标并实施攻击。其技术甚至可以轻易地被应用于其它的Web架构中的漏洞。企业应当投资于一些专业的漏洞扫描工具,如大名鼎鼎的Acunetix的Web漏洞扫描程序等。一个完善的漏洞扫描程序不同于网络扫描程序,它专门查找网站上的SQL注入式漏洞。最新的漏洞扫描程序可以查找最新发现的漏洞。 5.最后一点,企业要在Web应用程序开发过程的所有阶段实施代码的安全检查。首先,要在部署Web应用之前实施安全测试,这种措施的意义比以前更大、更深远。企业还应当在部署之后用漏洞扫描工具和站点监视工具对网站进行测试。 Web安全拉警报已经响起,安全形式异常严峻,企业绝对不应当草率从事。安全重于泰山 新一代云安全引领者-------云安全领域服务商------------ 快快网络小潘QQ:712730909
查看更多文章 >