MariaDB中SQL注入怎么回事,如何理解
Admin 2022-09-26 群英技术资讯 441 次浏览
接受用户输入的简单行为打开了利用的大门。 这个问题主要来自数据的逻辑管理,但幸运的是,很容易避免这些主要缺陷。
SQL注入的机会通常发生在输入诸如名称的数据的用户上,并且代码逻辑无法分析该输入。 相反,代码允许攻击者插入MariaDB语句,该语句将在数据库上运行。
始终考虑用户输入的数据,可疑的,在任何处理之前需要强大的验证。 通过模式匹配执行此验证。 例如,如果期望的输入是用户名,将输入的字符限制为字母数字字符和下划线,并且限制为一定长度。 查看下面给出的示例 -
if(check_match("/^w{8,20}$/", $_GET['user_name'], $matches)) { $result = mysql_query("SELECT * FROM system_users WHERE user_name = $matches[0]"); } else { echo "Invalid username"; }
此外,在创建输入约束时使用REGEXP运算符和LIKE子句。
考虑所有类型的必要的显式控制输入,如 -
控制使用的转义字符。
控制特定的适当数据类型以进行输入。 将输入限制为必需的数据类型和大小。
控制输入数据的语法。 不要允许任何模式外的任何东西。
控制允许的条款。 黑名单SQL关键字。
你可能不知道注入攻击的危险,或者可能认为它们不重要,但它们是安全问题的列表。 此外,考虑这两个条目的效果 -
1=1 -or- *
允许任何一个与正确的命令一起输入的代码可能导致揭示数据库上的所有用户数据或删除数据库上的所有数据,并且两种注入都不是特别聪明。 在某些情况下,攻击者甚至不花时间检查孔; 他们用简单的输入执行盲攻击。
另外,考虑由与MariaDB配合的任何编程/脚本语言提供的模式匹配和正则表达式工具,它们提供更多的控制,有时更好的控制。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
以下是MariaDB中的数据类型列表,字符串数据类型数字数据类型日期/时间数据类型大对象数据类型
USE database命令用于选择数据库,如果想在一个数据库上工作,比如:创建表,查询表,更新,创建存储过程等等,那么首先需要选择一个目标数据库。
连接到MariaDB后,您必须选择要使用的数据库,因为可能存在许多数据库。执行此任务有两种方法:通过命令提示符或通过PHP脚本。
MariaDB的数据类型有哪些?MariaDB的数据类型有数值数据类型、日期和时间类型和字符串类型,下文对这些数据类型的详解描述,对大家认识MariaDB的数据类型会有帮助,感兴趣的朋友就跟随小编一起往下看吧。
以下是在MariaDB中使用CRUD 操作的条件列表。条件通常与SELECT语句一起使用。参考下表列出的一部分条件 - 编号 条件 描述 1 AND 在满足2个
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008