说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

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

HTML文档下载 WORD文档下载 PDF文档下载
Delphi编写网络程序的安全措施

Delphi的MIDAS控件为编写网络程序提供了十分方便的手段。利用这些控件,可以编写局域网上的客户机/服务器体系程序,也能方便地在Internet上创建分散处理的应用。

网络程序的一个重要问题是安全性考虑。一些敏感数据在网上传送,很有可能被人非法拦截以造成不必要的损失。在实际的编程过程中,我采取了一些有效的防范措施,在此作些简单的介绍。

一、 原理

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

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

服务器端可以在远程数据模块中引出一个自定义接口,该接口返回一个随机字串。远程数据模块要记录该字串作为后续处理的密钥。随机字串的产生法可以多种多样,最简单的方法是用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卡的类型及特定的内容,这样,既使密码泄露了不会被人冒名登录。当然,任何安全措施都不是绝对安全的,安全措施还要有严格的保密制度及使用人员的高度的保密意识才能真正起到保密作用。

VB数据报表设计器在多层结构开发的应用 VB突破 TextBox 32K 的限制 VB拖拽节点时实现目录树自动翻滚 位图文件内部初探-VB资料 VB文本的加密与解密 VB显示盘中所有的目录 VB压缩MDB文件 一个移动文件的简单方法-VB资料 VB移动文件到回收站 VB隐藏文本框控件的环境菜单(又一方法) VB隐藏文本框控件的环境菜单 VB用API复制移动文件 VB用OleDragdrop事件接受拖放文件 用VB进行文本文件的再处理 用VB开发应用程序如何使用INI文件 用VB实现文件查找功能 VB用Winsock控件实现文件的下载 VB用两分法搜索列表框或组合框中的数据 在 ListBox 之中, 如何检测鼠标所在位置的选项? -VB资料 在 Textbox 中,录入 N 个字符后移到下栏-VB资料 在 VB 中控制 Word 在GotFocus时快速选择文本 -VB资料 在VB中使用文件对象 在VB中使用艺术字 在VB中引用.dbf及索引文件 在Windows操作系统中改变文件打开方式-VB资料 在程序运行时,怎样把多个文本框的内容保存起来-VB资料 在打印字符串时自动换行 -VB资料 在文本框中快速增加一串字符-VB资料 在文本框中实现由加减号输入数据-VB资料 在引用项目找不到Excel、Word等Office软体Lib的解决法-VB资料 createfont怎样创建一个随意宽高的字体? 急,请问有函数可取字符串后面N位字符吗?在线等待 怎样显示报表页总数问题 在打印中如何实现实现小计(即每页显示金额的总和)100分 问一个简单的问题,关于初始化 请问谁有动态树状目录的原码啊,急需!! 什么问题,怎么解决? 西瓜:有人要求我贴你的没穿外套没穿鞋子的照片 就是你说生气的那张 贴不贴啊? 怎样将一个十进制数转换为二进制数,并将二进制数中的每一位单独取出来? GetProcAddress在VB中的使用? excel单元格格式问题 用按钮保存网页的问题 用c++ builder和access.数据表中的记录多了之后,应用什么方案将之备份以及恢复? 以下ASP在Win2000server上运行报错请问大家为什么??? 在指定位置输出文本 怎么办? 如何启动和终止一个NT服务 .Net——又一个起跑线 怎么样注册jsp上的jdbcoracle驱动 什么问题,怎么解决? 我的爱情大结局----失败爱情原闯文章 在学习了2个月的delphi后,总结四大问题! OnPaint()的问题?为什么我的程序要刷很多次才能得到正确的结果? win2000 Server中的终端服务问题,急,所有的终端都趴下了! 深入浅出MFC 100分﹕vs.net正式版的產品密鑰 怎样动态改变下拉框中的值? 如何将已有的程序(有源程序)封装成ActiveX控件? 讨论一个数据库建模的使用工具问题? 关于Flash的Action的小问题 怎样为xslt中的超联接加上参数? 问题 如何设置datagrid行背景颜色? 安装程序安装完运行显示“运行时错误'380':无效属性值”是怎么回事? win2000+ms proxy 2.0问题 API函数 ReadFile的pb的中文说明谁有,告诉我好吗? 在线求助 在线等待,急 关于计算字段,急! datawindow的scrollvertical.setrow,不能触发rowfocuschanged事件,why? help:can you tell me how can i get the IDE of WinSDK? 有些人的言论很具有误导性,根据今年的就业形势,软考证书还是比较值钱的 请看这段代码?谢谢 怎样删除session变量?? 求购POS机!!! 请问应该怎样学习COM技术? 求购POS机 my_storeproc返回一个结果集,能否对这个结果集进行子查询? 如何将MSFlexGrid1中内容导入Access数据库中 讨论:文件编辑,web方式 出现这样一个问题怎么办? 由几个完全相同的小正方形组成的图形,能否折成正方体求方法 聪聪和明明拿同样多的钱去买笔,聪聪买了12枝,明明买了8枝,钱正好用完,回家后,聪聪给了明明10元,每支笔多少钱? 设集合A=1,2 则满足A∪B=1,2,3的集合B的个数为为什么会是四个而不是八个 {2,3}为什么不是集合B?TMD 教材有错误!误人子弟! 请问书虫.牛津英汉双语读物(美绘光盘版)与非美绘版有什么区别? 明明有60本书,比聪聪多2分之1,明明给聪聪多少本书就一样多了呢 若集合A={1,2,3},则满足A∪B=A的集合B的个数,方法 方法注意是方法 五个同样大小的正方体组合成一个图形,无论从哪个位置观察只能看到 聪聪在一百货花了他全部钱的3分之2在二百货话了余下钱的3分之1这时还剩下4元聪聪原有多少钱 A={x|1.2} B={1.2.3.4} 满足A包含C包含B 的集合 C的个数为? 5个同样大小的正方体组成一个图形,无论从哪个位置观察都至少能看到几个正方形? ,答案1个5个同样大小的正方体组成一个图形,无论从哪个位置观察都至少能看到几个正方形? ,答案1个 为 在图中剪去1个小正方形,使得到的图形经过折叠能够围成一个正方体,先想一想,再试一试! 请您帮我把所有情况都列出并画下来!写完整给40分呢! 八年级上册物理第一章机械运动知识梳理图最好是图,{大括号也行不要太多,总结的 用5、6、7、8、9五张卡片,任意组成的五位数是单数的可能性是( )我知道答案是3/5,我要的是运算过程和理由. 如图所示,将给图形折叠后可以围成一个正方体,折叠后:(1)点P与哪些点重合?点C与哪些点重合?点A与哪些点重合 点B与哪些点重合 求书虫系列牛津英汉语双语读物中至少两部书中的经典句子每部至少两句,要英文的~1.威廉·莎士比亚 William Shakespeare2.一个国王的爱情故事 The Love of a King3.亡灵鸟 Dedd Man's Island4.哈克贝利·费 用5、6、7、8、9五张卡片,任意组成的五位数是奇数的可能性是(). 如图所示,将该图形折叠后可以围成一个正方体,折叠后:(1)点P与哪些点重合?点C与那 人教版初二物理上册第一章机械运动第一节长度与时间的测量第15页答案动手动脑学物理第一题答案 用5.6.7.8.9卡片,任意组成的五位数是单数的有kuai 空集与A的交集是什么?1.空集与集合A(非空集)的交集是什么?2.为什么{x|x>2}∪{x|x2,或x 外研社出版的英汉双语读物小说怎么样?我想提高英语,想读读小说,带有翻译的,但不知道质量怎么样? 5,6,7,8,9.5个数字任意组成5位数是单数的可能性是几? A和空集的交集是什么 telephone 的中英文歌词,先是英文的,然后是中文的 4、8、9三张卡片组成三位数是奇数的可能性是多少? 集合A和集合B交集 设集合M=(1,2,3m-6),N=(-1,3),M交集N=(3),求m. 书虫牛津英汉双语读物的MP3的朗读者都是地道的英式发音吗? A与A的交集是空集吗 m的集合元素有0,1,2,3,4.;n的集合元素有1,3,5,已知N的集合是m与n的交集,求N的子集有几个? 2012年小学五年级寒假作业数学部分答案 谁能帮我总结一下沪科版物理八下期中知识点? 设集合m={1,2,5}.N={2,3,4,5,6},则M∩N= 聪聪和明明在商店买同样的笔记本,聪聪买了四本,共花了2.4元钱;明明买了6本,共花了3.6元钱.聪聪和明明买笔记本本数之比是():(),比值是();花的钱数之比是():(),比值是(). 宇航服质量为120kg,抗压能力超过120kpa,当穿着它在太空中行走时,他周围气压是多少 3和4题~ 聪聪说我4分钟跑了1200米,明明说我6分钟跑了1800米.用以上4个数据,组成比例 聪聪书本数的2/1是5本,明明书本数的3/1是5本,猜猜他两的各书本数是多少? 围棋盒中有x枚黑色棋子,y枚白色棋子,现从盒子中取出一枚棋子,如果它是白色棋子的概率为七分之二,则...围棋盒中有x枚黑色棋子,y枚白色棋子,现从盒子中取出一枚棋子,如果它是白色棋子的 聪聪4分钟跑了1200m,明明6分钟跑了1800m.用以上四个数据,能组成几个比例?请写出来.注:比例和比不同,例:4:1200=6:1800 2012九年级国标版轻松快乐过寒假 若集合A={x|-2-2},A和B的交集={x|1 聪聪和明明同算两数之和,聪聪得685,计算正确;明明得280,计算错误,明明所以算15分钟内有奖金!100这里连着问题 错的原因是将其中一个加数末尾的0漏掉了.你知道两个加数各是多少? 聪聪和明明两人共有200元压岁钱,如果聪聪给明明15元钱,则明明与聪聪的钱数比为11:9,明明原来有多少钱 已知全集A=AUB={X属于N|0 书虫英汉对照读物的书目 聪聪用压岁钱的一半买了一个新书包,又用剩下的一半买了几本文艺书,还剩15元,聪聪的压岁钱一共有多少元 已知集合A={x|1 2013级八年级上册英语书是什么版本的 如果可以的话希望能把2013级八年级上册英语单词带汉译(最好有音标)发给我 八年级上册青岛出版社物理新课堂答案 若集合A={x|-2-2},A和B的交集={x|1 2013年英语书上册的在哪儿可以买啊!急用! 平移前后图形的形状()、()改变了 在围棋盒中有x颗黑色棋子和 y白色棋子,从盒子中随机抽取一颗棋子为是黑色棋子概率3/8,求x/y之间的关系式x、y的关系式,x=——y 5个同样大小的正方体组成一个图形,无论从哪个位置观察都能至少看到( )个正方形?为什么5个同样大小的正方体组成一个图形,无论从哪个位置观察都能至少看到1个正方形呢? 优+学习方案 第28页 图形经过旋转和平移后图形的形状( ),大小( ),位置( ) 若{1、2}包含于A包含于{1、2、3、4、5}则满足条件的集合A的个数是 5个同样大小的正方体组成一个图形,无论从哪个位置观察都至少能看到几个正方形? 观察平移后图形顶点的位置,你发现了什么? 集合A={1.2.3},则满足A并B=A的集合B的个数是几个?为什么?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘