现在的位置: 首页 > 综合 > 正文

使用delphi 开发多层应用(十)安全访问服务器

2012年01月23日 ⁄ 综合 ⁄ 共 868字 ⁄ 字号 评论关闭

      前面讲了如何建立和访问服务器,但是前面建的服务器都没有安全控制,这里有很大的安全问题,第一是任何人做一个客户端都可以都可以访问

服务器。第二是数据在网络传输过程中都是明码的,没有加密,使用网络侦听器就可以检测到传输的内容。这是一个标准的系统不允许的,今天就

讲一下如何安全的访问服务器.

     首先我们需要使用加密来保证数据在网络上传输的安全,首先在服务器端我们加一个TkbmMWDCP2Crypt.这个是kbmMW 对DCP2Crypt的封装,

DCP2Crypt 是一个用pascal 实现的各种加密及校验的开源库。kbmMW 使用其来实现网络传输过程中的数据加密.

并在TkbmMWTCPIPIndyServerTransport 里面设置crypt 为kbmMWDCP2Crypt1.

另外,我们需要对客户端的进行认证,这里是通过用户名及密码来实现的.在服务器的认证事件里面我们加入以下代码:

procedure TForm1.kbmMWServer1Authenticate(Sender: TObject;
ClientIdent: TkbmMWClientIdentity; var Perm: TkbmMWAccessPermissions);
begin
if ((clientIdent.Username='xalion') and (clientIdent.password='123456')) then //这里可以通过使用权限库来对客户端进行认证
begin
Perm:=[mwapRead,mwapWrite,mwapDelete,mwapExecute,mwapInternalExecute] //对应着服务器的不同访问权限,在这里可以再细分权限
end;
end;

同时要设置 kbmMWServer 的EarlyAuthentication 为True.

服务器端完成,可以编译并运行了.

 

现在来看客户端,同样需要先增加一个TkbmMWDCP2Crypt,并设置kbmMWTCPIndyClientTransport 的crypt

为kbmMWSCP2crypt.

抱歉!评论已关闭.