SQL injection

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

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

从字符串组装的SQL查询
下面是一个示例,该示例在不使用SQL参数的情况下将字符串组合到SQL查询中。用户输入$ email和$ password扩展为原始字符串(如以下红色文本所示),并组合为一个SQL查询。
从用户那里选择*电子邮件= 'xxx @ xxx.xxx'和密码= md5(' xxx')或1 = 1--] ');
https://ithelp.ithome.com.tw/upload/images/20201106/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


<<:  ISO 27001 机房管理部份之三

>>:  Win10复制预设使用者设定档

DAY 6- 《串流密码2》- RC4

RC语音,最小最快最清晰。 讲完简单的OTP,要来点好玩的。 今天要来介绍另一个串流加密方法,Riv...

[Day16] Webpack - AssetModules、DevServer

Asset Modules Day15 的练习中,透过 loader 让 Webpack 可以读懂 ...

Day 25 - Rancher Fleet.yaml 档案探讨

本文将於赛後同步刊登於笔者部落格 有兴趣学习更多 Kubernetes/DevOps/Linux 相...

Chapter4 - Canvas背景动画(IV)把纷飞的落叶,通通抓回来当作收藏吧!

今天挑战半小时写完一篇文章(被打,其实我写完程序了,把文章撰写出来就好噜。 https://jerr...

Day [3] — this:建构物件 — JS之浸猪笼系列

如果你不知道这个系列为什麽叫这种激烈的名字可以看这篇: Day [0] — JS之浸猪笼系列 如果你...