This Domain(Admin5.com) is for Sale:

SQLServer加密与SQL注入

时间:2007-12-23  来源:不详  作者:迈克DB

SQLServer上的加密

SQLServer上内置了加密用来保护各种类型的敏感数据。在很多时候,这个加密对于你来说是完全透明的;当数据被存储时候被加密,它们被使用的时候就会自动加密。在其他的情况下,你可以选择数据是否要被加密。SQLServer可以加密下列这些组件:
·密码
·存储过程,视图,触发器,用户自定义函数,默认值,和规则。
·在服务器和用户之间传输的数据
密码加密
SQLServer自动将你分配给登陆和应用角色的密码加密。尽管当你可以从主数据库中直接察看系统表格而不需要密码。你不能给对这种情况作出任何修改,事实上,你根本不能破坏它。
定义加密
在有些时候,假如对对象进行加密是防止将一些信息分享给他人。例如,一个存储进程可能包含所有者的商业信息,但是这个信息不能和让其他的人看到,即使他们公开的系统表格并可以看到对象的定义。这就是为什么SQLServer答应你在创建一个对象的时候进行加密。为了加密一个存储进程,使用下面形式的CREATPROCEDURE语句:
CREATEPROCEDUREprocedurename[;number]
[@parameterdatatype
[VARYING][=defaultvalue][OUTPUT]]
[,…]
[WITHRECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION]

我们关心的仅仅是可选的WITH参数。你可以具体说明ARECOMPILE或者ENCRYPTION,或者你可以同时说明它们。ENCRYPTION要害字保护SQLServer它不被公开在进程中。结果,假如ENCRYPTION在激活的时候系统存储进程sp_helptext就会被忽视,这个存储进程将被存储在用户创建进程的文本中。假如你不想要加密,你可以使用ALTERPROCEDURE,忽略WITHENCRYPTION子句来重新创建一个进程。 织梦好,好织梦
为了能够使用加密。用户和服务器都应该使用TCP/IPNetworkLibraries用来连接。运行适当的NetworkUtility和检查Forceprotocolencryption,看下表,用户和服务器之间的连接将不会被加密。
本文来自织梦

织梦内容管理系统

加密也不能完全自由。当连接确定后,要继续其他的构造,并且用户和服务器必须运行代码来解释加密和解释的包裹。这里将需要一些开销并且当在编译码的时候会使进程慢下来。假如网络包裹在你控制范围之外,使用这种做法是非常好的。

加密中缺少什么?
你可以注重到在这个列表中缺少一些被加密的东西:你表格中的数据。在你存储数据之前,SQL Server不会提供任何内置的工具来加密你的数据。假如你需要保护存储在SQL Server上的数据,我们给你两条建议:第一,你可以利用GRANT 和DENY要害字来控制你想哪个用户可以在SQL Server中读取的数据。

第二.假如你真的想对数据加密,不要设法加密码。你可以利用被测试过的商业产品的算法。 织梦内容管理系统

SQL 注入攻击
SQL 注入攻击是一个常规性的攻击,它可以答应一些不法用户检索你的数据,改变服务器的设置,或者在你不小心的时候黑掉你的服务器。SQL 注入攻击不是SQL Server问题,而是不适当的程序。假如你想要运行这些程序的话,你必须明白这冒着一定的风险。 本文来自织梦

测点定位弱点
SQL 注入的脆弱点发生在程序开发员构造一个WHERE 子句伴随着用户的输入的时候。比如,一个简单的
ASP程序答应用户输入一个顾客的ID然后检索公司的全部人员的名字,假如顾客ID假如作为ASP页面的请求串的一部分返回,那么开发员可以编写下面的代码获得数据: 内容来自dedecms

strConn = "Provider=SQLOLEDB;Data Source=(local);" & _
"Database=Northwind;Integrated Security=SSPI"

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息