呼唤自动驾驶时代
SQL注入的工作方式SQL注入(和其他类型的注入漏洞)的基本要点是在SQL查询字符串中使用来自应用程序外部的未经检查的数据,例如用户输入文本。CWE 89的描述:“SQL命令中使用的特殊元素的不适当中和(SQL注入)”更精确地定义了以下内容: “在用户可控制的输入中没有充分删除或引用SQL语法的情况下,生成的SQL查询可能导致这些输入被解释为SQL而不是普通用户数据。这可用于更改查询逻辑以绕过安全性检查,或用于插入修改后端数据库的其他语句,可能包括执行系统命令。”
CWE数据库中的相同条目(CWE 89)提供了此攻击的另一个简单示例。假设应用程序代表用户“wiley”进行查询,并且用户以包含SQL指令的方式构造输入,例如: 与CWE Top 25中常见的漏洞枚举有关的内存错误SQL是用于管理,查询和处理关系数据库中数据的首选语言。它定义数据库创建中的表和关系。对于大多数日常使用,开发人员将SQL用于“CRUD”—创建、读取、更新和删除数据。 为什么SQL可利用? 通用编程语言不包括对SQL的支持。通过数据库供应商提供的API访问数据库命令。在许多情况下,SQL命令以字符串形式发送,API会解释该字符串并将其应用于数据库。以下是一些简单的SQL查询:
典型的SQL查询采用以下形式: 查找SQL注入根据OWASP Top 10,注入漏洞(其中SQL注入是其中一种)是Web应用程序安全性的头号问题。SQL注入在CWE Top 25中排名第六。其他类型的安全漏洞示例包括:
所有这些漏洞都有一个共同的属性。利用来自系统外部的数据,用户或文件输入或任何潜在危险功能来利用它们。 幸运的是,SQL注入可以通过工具静态和动态地检测到。但是,您永远无法确定是否全部抓住了它们。防止SQL注入也是减少这些漏洞的频率和影响的关键。结合了漏洞检测和预防功能的成熟DevSecOps流程很可能会捕获并阻止这些类型的漏洞进入已发布的产品。 什么是SQL?
SQL是一种特定于域的语言,旨在管理关系数据库。关系数据库将数据显示为行和列中的表的集合。每行都有一个提供与其他表的关系的键。这是表“user”的示例: (编辑:信阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |