SQL注入
当程序员连接字符串以彙编SQL指令时,就会发生SQL注入。字符串是纯数据,而SQL指令是可执行代码。
从字符串组装的SQL查询
下面是一个示例,该示例在不使用SQL参数的情况下将字符串组合到SQL查询中。用户输入$ email和$ password扩展为原始字符串(如以下红色文本所示),并组合为一个SQL查询。
从用户那里选择*电子邮件= 'xxx @ xxx.xxx'和密码= md5(' xxx')或1 = 1--] ');
参数化查询示例
@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