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

简介: 前面讲了如何建立和访问服务器,但是前面建的服务器都没有安全控制,这里有很大的安全问题,第一是任何人做一个客户端都可以都可以访问 服务器。第二是数据在网络传输过程中都是明码的,没有加密,使用网络侦听器就可以检测到传输的内容。

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

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

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

     首先我们需要使用加密来保证数据在网络上传输的安全,首先在服务器端我们加一个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.

并设置kbmMWSimpleClinet 的用户名和密码.

编译和运行,并访问服务器.

这样就实现了安全访问kbmMW 服务器.

当然了由于每个kbmMW服务器会有很多个不同的服务, 可能需要针对不同的服务进行不同的认证,

这个就要在每个服务里面进行进一步的认证了。这里就不再罗嗦了.

目录
相关文章
|
1月前
|
Web App开发 监控 JavaScript
【Node系列】创建第一个服务器应用
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,可以用于构建高性能的网络应用程序。它采用事件驱动、非阻塞I/O模型,使得程序可以以高效地方式处理并发请求。
23 4
|
17天前
|
前端开发 数据处理 API
后端开发:构建稳健与高效的服务器逻辑
后端开发:构建稳健与高效的服务器逻辑
|
2天前
|
网络协议
​LabVIEW从另一个VI或通过VI服务器访问正在运行的可执行文件
​LabVIEW从另一个VI或通过VI服务器访问正在运行的可执行文件
|
2天前
|
弹性计算 负载均衡 容灾
应用阿里云弹性计算:打造高可用性云服务器ECS架构
阿里云弹性计算助力构建高可用云服务器ECS架构,通过实例分布、负载均衡、弹性IP、数据备份及多可用区部署,确保业务连续稳定。自动容错和迁移功能进一步增强容灾能力,提供全方位高可用保障。
12 0
|
6天前
|
网络协议 安全
ensp中nat server 公网访问内网服务器
ensp中nat server 公网访问内网服务器
|
6天前
|
安全 Linux 网络安全
Linux _ apache服务器部署 不同域名—访问不同网站(多网站)
Linux _ apache服务器部署 不同域名—访问不同网站(多网站)
|
6天前
|
开发框架 Java .NET
什么是JavaWeb(概念|应用|服务器)?
什么是JavaWeb(概念|应用|服务器)?
5 1
|
10天前
|
Java
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
47 0
|
13天前
|
弹性计算 Shell Apache
某时间段访问apache 服务器的请求IP
【4月更文挑战第29天】
16 2
|
13天前
|
弹性计算 Shell Apache