文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发PowerBuilderPB应用的数据库联接的安全防范
精品推荐
特别推荐
·PowerBuilder实用技巧八则
热点TOP10
·PowerBuilder简介
·在PB中用OLE存取blob类型数据
·在PB中如何实现数据模糊查询
·使用XML技术实现OWC对数据库的展示
·PowerBuilder数据录入同步显示
·导出数据到Excel概述
·PB动态报表格式自由定义的实现
·PB程序中在普通激光打印机上实现条码打印
·PB应用ODBC访问不同数据库
·利用PB数据窗口特征制作进度条
·PowerBuilder应用开发系列讲座(6)
·PB8.0应用程序编译发布技术研究
·PB代码优化
·在PB中用Flash制作Splash封面
·PowerBuilder应用开发系列讲座(39)
·在pb中用语音读金额
·PowerBuilder的数据窗口
·Direct3D9初级教程
·关于PB播放AVI文件的补充
·在PowerBulider中读写IC卡

PB应用的数据库联接的安全防范

日期:2007年5月2日 作者: 查看:[大字体 中字体 小字体]


在通常的Server/Client方式MIS开发中,由于程序要与数据库服务器保持联接,为了程序的灵活和扩充性,联接参数(用户ID和登录口令)又不能在程序中写死(其实写死也不是一种好的方法),一般的方法无外乎有两种:其一是把联接参数存放在注册表中;其二就是直接读INI文件。

本人找到一种方法,可以解决数据库应用的安全性问题,通过INI文件和数据库的巧妙处理,在程序中提供用户一种接口,可以随时修改数据库的联接参数,而又不给外人以蛛丝马迹,做到神不知鬼不觉。

实现方法如下:

1、创建INI文件,记录数据库联接的一些方便程序分发的参数DBMS、SERVERNAME、LOGID具体如下:

//创建成INI文件(rsgl.ini)

[Database]

DBMS=O84 ORACLE 8.0.4

ServerName=gxmistest //数据库服务器名

LogId=rsgl //实际的数据库登录用户

然后,在数据库中创建一个中间用户PUB,登录口令PUB,赋予PUB用户CONNECT,RESOURCE权限,再在其中创建表CREATE TABLE TBL_PUB_PASSSHADOW (PASSSHADOW VARCHAR2(50) NOT NULL)用于存放实际的数据库联接的登录口令(当然要经过加密)。加密函数网上多的是,在此就不累述。

我自已创建了一个字符串加密函数f_password(string old_str,string new_str,integer jm_mode),jm_mode参数用以区分函数的加(解)密,old_str、new_str两参数分别为加(解)密的字符串。

2、就开始编写应用程序了,在应用程序的OPEN事件中进行数据库登录联接,程序脚本如下:

string ls_inifile,ls_starttimes

string ls_logid,ls_logpass,ls_dbms

string ls_pass,ls_sql,ls_code,ls_server

//设置INI文件

ls_inifile = 'rsgl.ini'

ls_server = ProfileString (ls_inifile, "database", "ServerName", "")

ls_logid = ProfileString (ls_inifile, "database", "LogId","")

// Profile pub

SQLCA.DBMS = ProfileString (ls_inifile, "database", "dbms", "")

SQLCA.LogPass = 'pub'

SQLCA.ServerName = ls_server

SQLCA.LogId = "pub"

SQLCA.AutoCommit = False

SQLCA.DBParm = ""

connect using sqlca;

//得到用户RSGL加过密的用户口令

select passshadow into:ls_pass from tbl_pub_passshadow;

//口令解密

ls_pass = f_password(ls_pass,0)

disconnect using sqlca;

//联接到实际的数据库用户RSGL

SQLCA.ServerName = ls_server

sqlca.DBMS = ProfileString (ls_inifile, "database", "Dbms","")

SQLCA.DBParm = ProfileString (ls_inifile, "database", "Dbparm","")

sqlca.database = ProfileString (ls_inifile, "database", "database","")

sqlca.userid = ProfileString (ls_inifile, "database", "userid","")

sqlca.dbpass = ProfileString (ls_inifile, "database", "dbpass","")

sqlca.logid = ls_logid

sqlca.logpass = ls_pass//ProfileString (ls_inifile, "database", "LogPass","")

SQLCA.AutoCommit = False

connect using sqlca;

if sqlca.sqldbcode <> 0 then

choose case sqlca.sqldbcode

case 1017

MessageBox (string(sqlca.SQLDBCode),"不能联接数据库。~r错误:无效的用户名和口令.请与管理员联系!")

case 12154

MessageBox (string(sqlca.SQLDBCode),"不能联接数据库。~r错误:服务器名不存在!请与系统管理员联系.")

case 999

MessageBox (string(sqlca.SQLDBCode),"不能联接数据库。~r错误:数据库不支持你当前的安装!")

case else

MessageBox (string(sqlca.SQLDBCode),"不能联接数据库。~r错误:"+ sqlca.sqlerrtext)

end choose

halt close

else

open(w_gd_frame) //打开应用程序的主窗口

end if


[1] [2] 下一页 




上一篇:在MicroHelp Bar上显示时间

下一篇:在PB中如何实现数据模糊查询

PB应用的数据库联接的安全防范 相关文章:
·IE浏览器再现严重安全漏洞 微软紧急发补丁程序
·绝对好用的注册表技巧
·不怕攻击 家庭上网必学八招安全绝招
·非主流ps教程实用的技巧大全
·推荐:漂亮的手机上使用的墙纸图片分享下载
·中小企业整体网络安全解决方案解析
·基础知识 初级黑客安全技术命令详解
·如何以安全模式启动计算机
·Windows 2003安全设置大全-IIS、终端服务、FTP、SQL的配置
·SQL2000 数据库安装说明
PB应用的数据库联接的安全防范 相关软件:
·Kaspersky(卡巴斯基) Internet Security 安全套装 V6.0.2.621 中文版
·如何加固Windows XP 主机安全
·2007网络安全黄皮书V1.0.0
·美萍安全卫士v12.3
·温瑞安全集
·ACCESS数据库教程 北京大学的ACCESS教程
·爆出网站数据库路径
·防骗 安全教育片
·360安全卫士v3.2
·目前中国最快最好用的XP系统 天宇7.5版美化GHOST XP

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot