13306647218

公司动态

Company dynamics

网站中sql攻击的一些基本常识

作者:蓝梦seo专业企业网站优化时间:2020-07-13 14:10:14

SQL注入是一种可以执行恶意SQL语句的注入攻击。以下文章将带大家了解SQL注入,并简要介绍防止SQL注入攻击的方法,希望对大家有所帮助。

mf_5e0182c89b409.jpeg

什么是SQL注入?

SQL注入(SQLi)是一种可以执行恶意SQL语句的注入攻击。它将任意SQL代码插入数据库查询中,从而使攻击者可以完全控制Web应用程序后面的数据库服务器。攻击者可以使用SQL注入漏洞绕过应用程序安全措施;他们可以绕过网页或Web应用程序的身份验证或授权,并检索整个SQL数据库内容;他们还可以使用SQL注入来添加,修改和删除记录。

SQL注入漏洞可能影响使用SQL数据库的任何网站或Web应用程序,例如MySQL,Oracle,SQL Server或其他。犯罪分子可能会使用它来未经授权地访问用户的敏感数据:客户信息,个人数据,商业秘密,知识产权等。SQL注入攻击是最古老,最受欢迎,最危险的Web应用程序漏洞之一。

SQL注入攻击的类型

SQL注入攻击可以通过多种方式执行。在选择特定的攻击方法之前,攻击者可能会观察系统的行为。

带内注入

这是典型的攻击。攻击者可以通过相同的通信渠道发起攻击并获得结果。这是通过两种带内技术完成的:

●基于错误的SQL注入:从显示的错误消息中获取有关数据库的信息

●基于综合的SQL注入:依靠攻击者将UNION ALL被盗信息的结果与合法结果链接的能力。

两种技术都依赖攻击者来修改应用程序发送的SQL以及显示的错误和浏览器中返回的信息。如果应用程序开发人员或数据库开发人员无法正确地参数化它们在查询中使用的值,它将成功。都是可以检测错误的尝试和错误方法。

盲注

也称为推理SQL注入,盲注入攻击不会直接显示目标数据库中的数据;相反,攻击者会仔细检查行为的间接线索。 HTTP响应中的详细信息,某些用户输入的空白页以及数据库响应某些用户输入所花费的时间都可能是线索,具体取决于攻击者的目标。他们还可以指向攻击者尝试过的另一个SQLi攻击路径。

带外注入

这种攻击有点复杂,当攻击者无法通过一次直接查询响应攻击实现目标时,可能会使用它。通常,攻击者将生成SQL语句,当这些语句呈现给数据库时,将触发数据库系统创建与攻击者控制的外部服务器的连接。这样,攻击者可以收集数据或可能控制数据库的行为。

二阶注入是一种带外注入攻击。在这种情况下,攻击者将提供SQL注入,这些注入将由数据库系统的单独行为存储和执行。当发生辅助系统行为时(它可能类似于基于时间的作业,或者是由其他典型的管理员或用户使用数据库触发的操作),并且执行了攻击者的SQL注入,即发生“伸展”到系统时,攻击者控件。

如何防止SQL注入攻击?

以下建议可以帮助防止成功的SQL注入攻击:

不要使用动态SQL

避免将用户提供的输入直接放入SQL语句中;最好使用预先准备的语句和参数化查询,这样更安全。

不要以纯文本形式保存敏感数据

加密存储在数据库中的私人/机密数据;如果攻击者成功清除了敏感数据,这将提供另一级保护。

限制数据库权限和特权

将数据库用户的功能设置为最低要求;这将限制攻击者在尝试获得访问权限时的操作。

避免直接向用户显示数据库错误

攻击者可以使用这些错误消息来获取有关数据库的信息。

对访问数据库的Web应用程序使用Web应用程序防火墙(WAF)

这为面向Web的应用程序提供了保护,可以帮助识别SQL注入尝试;根据设置,它还可以帮助防止SQL注入尝试到达应用程序(和数据库)。

定期测试与数据库交互的Web应用程序

这样做可以帮助捕获可能允许SQL注入的新错误或回归。

将数据库更新为最新的可用修补程序

这可以防止攻击者利用旧版本中存在的已知弱点/错误。

简介:SQL注入是一种流行的攻击方法,但是通过采取适当的预防措施(例如确保数据加密,保护和测试Web应用程序)以及最新的补丁程序,您可以采取有意义的步骤来确保数据安全。