主  题:  讨论:关于三层数据库的安全问题 
作  者:  wendel (抓狂)  
等  级:    
信 誉 值:  100 
所属论坛:  Delphi 网络编程/分布式开发 
问题点数:  20 
回复次数:  4 
发表时间:  2003-06-14 12:07:30 
   
 
   
很多书都说三层结构提供了更好的数据安全性,但是开发三层结构,在服务器端,必须提供所有数据,然后客户端根据权限等信息进行对数据的过滤,这时客户端所能看到的试这个用户所能允许看到的数据,但是有一个问题让我觉得很奇怪,加入这客户端机器上有一个人用delphi自己做一个客户端,那么数据库的数据就完全暴露在它面前,这很明显是不可许的,那么用什么方法杜绝这种可能发生呢?我是初学者,我前面的观点可能有错误,谁能给于更正?
  
 
 
 回复人: wengj(六月雪) ( ) 信誉:100  2003-06-14 12:19:00  得分:0 
 
 
  你说的太模糊,不清楚你要表达的意思!应用端要必须通过应用服务器才可以使用,否则,你写的东西不是多层结构。  
 
Top 
 
 回复人: wendel(抓狂) ( ) 信誉:100  2003-06-14 12:40:00  得分:0 
 
 
  是的,客户端的确是通过应用服务器来使用,但是,服务器通过什么允许客户机访问呢?大家可能说通过DCOMCNFG来设定运行COM服务的用户名,但是假如有这样一个人,他是工作在DCOMCNFG里面的一个用户,那么对于服务器端来说,这个用户是合法的。假如这个人A用DELPHI自己开发一个客户端,就像我们开发客户端一样的方法,这个时候服务器端识别的用户名仍然是合法的,在A开发的客户端面前,数据库的所有数据都是暴露的,那么随便一个阿三都可以自己开发一个客户端修改一些他本来无权看到数据,那是不是很可怕啊?是不是需要另外一套机制来限定服务器端只允许我们自己开发的客户端的访问呢?那么应该怎样建立这个机制呢?大家能不能多发表一些看法?
  
 
Top 
 
 回复人: online(龙卷风(学习.NET中...)) ( ) 信誉:100  2003-06-14 14:18:00  得分:0 
 
 
  应用端要必须通过应用服务器才可以使用
假如这个人A用DELPHI自己开发一个客户端,必须调用中间层才可以浏览数据的啊
不可能直接看到  
 
Top 
 
 回复人: wendel(抓狂) ( ) 信誉:100  2003-06-14 21:50:00  得分:0 
 
 
  没错,但是服务器端怎么样才能识别到底是我们做的客户端,还是A做的客户端呢?
假如不能识别,那么中间层作为一个数据的接口那么A所做的客户端同样能够通过这个接口拿到数据修改数据了啊,我想中间层一定有约束的,但是怎么加,加什么,请有经验的人能否告诉我?我承认我是菜鸟,但是我希望能够学到一些东西。
  
 
Top