SQL injection

SQL注入
当程序员连接字符串以彙编SQL指令时,就会发生SQL注入。字符串是纯数据,而SQL指令是可执行代码。

用户可以以HTML形式输入摘要或SQL代码片段作为输入,然后将其发布到后端服务器进行处理。如果程序员将从攻击者发布的SQL代码视为普通数据,并将它们与主要SQL指令结合在一起,则组装的SQL代码可以成功执行。这就是SQL注入的工作方式。

从字符串组装的SQL查询
下面是一个示例,该示例在不使用SQL参数的情况下将字符串组合到SQL查询中。用户输入$ email和$ password扩展为原始字符串(如以下红色文本所示),并组合为一个SQL查询。
从用户那里选择*电子邮件= 'xxx @ xxx.xxx'和密码= md5(' xxx')或1 = 1--] ');
http://img2.58codes.com/2024/20132160CA5IbLhjfs.png
参数化查询示例
@Age是SQL查询@SqlInstruction中使用的参数。
宣告@SqlInstruction NVARCHAR(500);
SET @SqlInstruction = N'SELECT * FROM从用户年龄= @Age ;';
EXEC sp_executesql @ SqlInstruction,N'@ Age INT',99 ;

参考文献
.基于角色的访问控制与基于属性的访问控制:如何选择
.RBAC与ABAC访问控制模型:有什么区别?
.SQL注入示例–参数化查询–印地语

资料来源:Wentz Wu QOTD-20201105


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章