安全之加密术和注入攻击的
获得额外的数据 当然,对于一个攻击程序,尽管它不知道任何顾客的ID,甚至不用去猜,它也可以获得数据。为了完成这个工作,它将下面的文本输入到应用程序调用顾客ID的textbox中: customer ID:\'UNION ALL SELECT ContactName FROM CustomersWHERE CustomerID \'
如果你输入了这个代码,你将会看到返回一个询问语句: SELECT ContactName FROM CustomersWHERE CustomerID = \'\'UNION ALL SELECT ContactName FROM CustomersWHERE CustomerID \'\'
高官堕落。来自多方面的消息证明 通过获得空和非空顾客的ID并集,这个查询语句会返回数据库中所有的相关姓名。事实上,这个UNION技术可以被用来获得你数据库中大多数信息,看看这个CustomerID的值: \'UNION ALL SELECT FirstName \' \' LastName FROMEmployees WHERE LastName \'
它将SQL语句变成: SELECT ContactName FROM CustomersWHERE CustomerID = \'\'UNION ALL SELECT FirstName \' \' LastName FROMEmployees WHERE LastName \'\'
看,那就是攻击程序从你的数据库获得的第一个雇员的名字。 更多的攻击程序 如果SQL注入仅仅只有数据暴光这个弱点就已经够糟糕的了,但是,实际上一个良好的攻击程序可以通过这个弱点获取你数据库中所有的资料。看下面这个例子: \';DROP TABLE Customers;--
SQL语句变成: SELECT ContactName FROM CustomersWHERE CustomerID = \'\'; DROP TABLE Customers;-- \'
这个分号使语句和SQL Server隔离,所以,这里实际上是两个语句。第一个语句不存在的名字,第二个则撤消的整个Customers表。两个—SQL Server注释符,它可以使子句不发生语法错误。 使用这个技术的变异,一个攻击程序可以在任何SQL语句或者存储过程上运行。通过使用xp_cmdshell扩展存储过程,一个攻击程序同样可以在操作系统命令下运行,显然,这是一个严重的漏洞。 保护自己的数据库 现在,你知道如何防范SQL注入攻击了吗?首先,你不能在用户输入中构造WHERE子句,你应该利用参数来使用存储进程。在最初的ASP页面下,重新写的部分将和刚才我们在表中所看到的东西相似。即使你认为在你的应用程序中没有脆弱点,你应该遵守最小特权原则。使用我们建议的其他安全技术允许你的用户仅仅访问他们能够访问的。在你没有发现你数据库脆弱点的时候,只有这样,不会使你的数据库崩溃。 最后的建议 这就是全部的SQL Server安全系列。也许你现在不是一个全面的专家,但是你已经了解了很多反面。下一步就是你要保护你SQL Server数据,记住你在这里所学到的知识,并利用到你的数据库中保证你的数据不被那些黑客攻击。
江中黄芪生脉饮与同仁堂生脉饮哪种好石家庄蓝天中医院
临沂哪里专业治白癜风
- 上一页:存储过程编写经验和优化呢
- 下一页:安全性简介
-
长安深蓝C673曝光,有别于为SUV,或年内首发
上个月关中深蓝SL03才同年上半年亮相,这边还没上市成交,深蓝旗下的第二...
2023-10-04
-
给领导发传统节日祝福短信,情商高的人都知道这3点,怪不得领导喜欢
立刻就要到除夕节了, 我们肯定就会不收到很多的盼望短讯, 但是大多数的...
2023-10-01
-
2022年军校在皖招生开发计划来了!
@各位高考卷: 2022年军队院校 招收普通高校毕业生计划 请查收 明年 在安徽...
2023-09-28
-
生意社:旺季未过 月初二甲醚市场横盘整理
经营社员07月末06日讯 7月末初国际上过氧化消费市场连续性确保强势,...
2023-09-27
-
Ulster霍尔大学优质课程推荐 BSc Nursing Science (Top-up) & MS
弗莱明所大学(Ulster University)位于苏格兰波斯尼亚和黑塞哥维那尔兰东南部贝...
2023-09-23
-
徐汇又一家商超恢复营业,浓浓烟火唯美又回来啦!
随着上海商贸应用复商复市南步伐持续性加快,汇金百货公司严格特区政府疫...
2023-09-18