摘要载入中…    请稍等…












内容载入中…    请稍等…

如长时间看不到内容,请关闭浏览器,重新打开此页!

芯友首页 应用软件 编程开发 网络硬件 资源下载 动漫音乐 精美图库 芯友论坛 视频教程 电脑技术QQ群:72845454
 ★★photoshop学友-史上最强播放器★★
 位置:编程开发>Deiphi>Deiphi网络编程
◎→ 本类最新
远程程序运行状态的简单监控
在IE上增添一个按钮
在Delphi中实现ASP编程
在Delphi程序中应用IE浏览器控件
在DELPHI程序中拨号上网
用Delphi编写ASP的ActiveX服务器
用Delphi编写CGI程序返回图象
◎→相关资源
C语言入门视频教程
C#编程WinForm入门视频
Asp.net入门视频教程下载
VC++编程视频教程下载
VB窗体文章
HTML入门教程
Deiphi实例教程
Deiphi窗体文章
Deiphi数据库编程
Deiphi网络编程
Deiphi图形图象文章
Deiphi系统文件
◎→ 热门资源
图解Delphi 8 Eco 开发实战
用Delphi编写后台监控软件
用Delphi获取Windows及系统路径
用Delphi实现24位真彩色图标
用Delphi实现24位真彩色图标(2)
用Delphi实现24位真彩色图标(1)
用Delphi7.0实现漂亮的汉字窗口

Delphi编写网络程序的安全措施


日期:2008-10-20 22:11:34    来源:
   
 ·用Delphi编写后台监控软件 ·网络积件再思考。(其实也只是胡思乱想)
 ·用VB的Printer对象编写打印程序 ·机房管理与网络安全记要

Delphi编写网络程序的安全措施
  一、 原理

  目前进行数据加密的方法很多,对数据的保护起到一定的作用。但如果采用固定的密钥或是密钥随数据一起传送,则均不能达到令人满意的保密效果。在实践过程中,我摸索出了一套“请求-应答”模式的随机密钥方法,对密码和数据的保密效果都令人十分满意。

  当客户端程序启动并企图与服务器程序建立连接时,客户程序从服务器端取得一个由服务器程序产生的随机字串,系统将以此字串为密钥来传送用户登录密码和数据。由于密钥由服务器程序随机产生,客户每次登录时密钥均不相同,因此大大减少了密码被拦截导致数据被窃的可能性。

  服务器端可以在远程数据模块中引出一个自定义接口,该接口返回一个随机字串。远程数据模块要记录该字串作为后续处理的密钥。随机字串的产生法可以多种多样,最简单的方法是用Random()函数产生一个随机数后再由此数用Format()函数或IntToStr()产生一个字符串。

  二、 用户登录措施

  为了防止程序被非法调试从而泄露密码,必须将客户的登录信息在服务器端处理,也可以专门增加一个安全层负责客户的登录。客户的登录信息储存在客户资料表中,包括用户名、密码、权限等信息。

    客户程序登录时,先调用服务器程序的接口获得密钥字串,并用此密钥对用户输入的用户名和密码进行加密并向服务器发送登录信息。加密算法可以是DES算法或其它有效算法。服务器接到登录信息后,先用先前产生并记录的随机密钥对登录信息进行解密,再将解密后的信息与存储的客户资料表中的信息进行对照,从而判断客户信息是否合法以及该客户享有的数据权限等。

    该过程的客户端程序如下:

  strKey:=myRemoteSever.GetKey();

  {调用服务器的接口获得随机密钥}

  UserName:=Ency(strUserName,strKey);

  {对用户名加密,Ency()为加密算法}

  Password:=Ency(strPassword,strKey);

   {对登录密码进行加密}

  If myRemoteServer.LogIn(UserName,Password) then {登录}

   Begin

  {进行处理}

   End;

  服务器端的登录过程LogIn()如下:

  strUserName:=DeEncy(UserName,strKey);

   {对用户名解密,DeEncy()为解密算法}

  strPassword:=DeEncy(Password,strKey);

   {对登录密码解密}

  {查询数据库}

  if (Pass) then

   Result:=true

  Else

   Result:=false;

  要注意的是,在服务器程序和客户程序中,StrKey均应定义为全程变量。

  为了防止客户资料表被程序外打开从而泄露密码,可以对客户资料进行一定的加密措施,例如PARADOX表可以添加Password,服务器程序在访问客户资料表时先提供该Password。

三层交换技术 交换机与路由器密码恢复 交换机的选购 路由器设置专题 路由故障处理手册 数字化校园网解决方案
  三、 数据传送

  在网络程序中,一些敏感数据在网上传送时必须加密。Delphi的MIDAS机制提供了数据加密的途径,可以在数据传往客户端之前对一些字段进行加密,也可以在接收到客户端的更新数据请求后对来自客户端的数据的相应字段进行解密后才向数据库进行更新。为了达到些目的,可以在服务器程序的远程数据模块中加入一个Tprovider或是TdataSetProvider对象,并将此对象的DataSet属性置为要处理的数据集。在Tprovider的OnGetData事件中加入如下代码:

   with DataSet do
  begin
   while not EOF do
   begin
   Edit;
   SensitiveData.AsString :=
   Ency(SensitiveData.AsString,strKey);
   {对敏感数据加密}
   Post;
   Next;
   end;
   end;
  以上代码可以将敏感数据加密后再送往客户程序。

  同样,在Tprovider的OnUpdateData事件中加入一些处理代码便可对客户端送来的数据进行解密。

  以上只是介绍了网络程序安全措施实现的一般原理,在此基础上,可以增加其它保密措施,以达到更好的保密效果。例如,客户程序可以用特定的辅助硬件设备来增加安全性。在智能卡应用程序中,客户程序在登录时不仅要求用户输入用户名和密码,程序同时检查IC读写器中IC卡的类型及特定的内容,这样,既使密码泄露了不会被人冒名登录。当然,任何安全措施都不是绝对安全的,安全措施还要有严格的保密制度及使用人员的高度的保密意识才能真正起到保密作用。  [1]

Flash AS编写的蝌蚪特效动画

iPhone运行Apache网络服务

强行安装打印机驱动程序

了解安全和隐私功能

--->QQLive(QQ直播) V3.5.5.2332┊新型的网络QQ直播软件┊简体中文绿色免费版
--->QQ伴侣安全卫士 2.0.0┊已增加了老板键和一键锁定等功能┊简体中文绿色免费版
--->网络搜图王 V1.25
--->网络电影王 V2.33
--->uTorrent V1.70 Build 1825 Beta┊很小巧的BT客户端程序┊多国语言绿色免费版
Tags:  编写 网络 程序 安全
{$enumber$}
芯友网版权所有 1999-2006 | 著作权与商标声明 | 法律声明 | 服务条款 | 隐私声明 | 联系我们