电子商务网站源码设计中安全问题与

点赞:6511 浏览:22225 近期更新时间:2024-02-07 作者:网友分享原创网站原创

[摘 要]本文针对电子商务网站源码设计中常见的安全问题进行了分析,并结合实际给出了相应的解决方法或建议.

[关 键 词]电子商务网站源码设计数据库安全

网站数据库作为信息的聚集体,是电子商务网站运营的基础,通常保存着重要的商业数据和客户信息,这些信息安全性至关重要,关系到企业兴衰成败.然而,在实际应用中,一些企业网站数据库里一些商业数据却被攻击者窃取后公布于众、公司商业网站中的产品又被恶意修改等等类似的案例比比皆是,数据的安全性和企业的自身利益受到了严重的威胁.笔者就电子商务网站源码设计中容易出现安全问题进行分析,并提出解决的对策.

电子商务网站源码设计中安全问题与参考属性评定
有关论文范文主题研究: 关于数据库的论文范例 大学生适用: 研究生毕业论文、学年论文
相关参考文献下载数量: 43 写作解决问题: 怎么撰写
毕业论文开题报告: 论文模板、论文摘要 职称论文适用: 杂志投稿、职称评副高
所属大学生专业类别: 怎么撰写 论文题目推荐度: 优质选题

一、电子商务网站源码设计中常见的安全问题

1.代码设计中命名设计的安全问题

对网站文档名、网站目录名、数据库名及数据表文档名、数据表中字段元素进行命名设计时,因设计人员在工作中的一些习惯,使用与中文意义相对应的英文或拼音方式直接命名,爱把数据库放在Data或Database等目录下,对数据库的命名通常采用Data、Database等,对数据表的命名常以User、Admin、Product等命名,对数据表中敏感字段的命名也常采用Username、Password、Pwd、Price等方式命名.这样的命名易猜测,从而易泄露重要数据信息,易暴露网站数据库的存储位置,使得网站的数据易被非法窃取.

2.数据库连接的代码安全问题

下面是一个ASP连接远程SQL数据库的简单例子:

<%Setconn=Server.CreateObject(“ADODB.Connection”)connstr=”driver={SQLServer};server=202.108.32.94,uid=sa,pwd=PASSWORD,database=/data/database.mdb”Conn.openconnstr%>

此例暴露了使用这种数据库连接文件的两大安全问题.一方面,将怎么写作器的地址(server等于202.108.32.94)、数据库用户的用户名及口令(uid等于sa,pwd等于PASSWORD,)、数据库文件名及文件存储路径(database等于/data/database.mdb)直接存放在数据库连接文件中,一旦这些连接文件中的内容外泄,网站数据库能被攻击者恶意下载或篡改;另一方面,在源代码编写时,直接使用数据库管理系统提供的默认Sa,使得攻击者能利用这个漏洞,通过构建特殊的用户权限,直接操纵数据库系统管理软件,危及网站数据库的安全.

3.使用SQL语句导致的安全问题

SQL语句导致的注入漏洞存在于任何使用SQL语句的网站中,注入漏洞可以说是2004年以来影响最大的漏洞,它利用了程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患.攻击者可以通过在正常数据库查询代码的后面添加特殊字符的方法,根据程序返回的结果,获得数据库中的表名、字段名,达到探测数据库信息或提升权限等目的.一般情况下,注入点较多出现在各个网站的提供输入注册信息或查询和操作数据库的页面.例如,一般程序设计人员通过下列select语句进行查找:(select*fromuserswhereuserid等于’“&userid&”’andpwd等于’“&pasword&”’).针对本语句,我们只要构造一个特殊的用户名和,如aa’or’1’等于’1,这样,select语句将变成(select*fromUserswhereuserid等于’aa’or’1’等于’1’andpwd等于’“&pasword&”’).由于有or运算符和“1等于1”恒成立的条件,使得数据库的所有记录都满足此条件而实现登录.同理,还可以通过update语句、insert语句等进行SQL注入攻击.


二、解决电子商务网站源码设计中常见安全问题的对策

1.采用非常规命名法

针对网站文档名、网站目录名、数据库及数据表文档名、数据字段名、数据库连接文件名、后台管理员用户名等关系到网站数据库安全的命名,不使用系统默认的或者有特殊含义容易被猜测到的命名,尽量使用无规则的英文字母.例如,对于网上书店的数据库文件不要简单地命名“bookshop.mdb”,而是要以非常规的名字命名,如用“jxgn.mdb”.这样,对于一些通过猜测的方式得到数据库相关信息的非法访问起到了有效地阻止作用.

2.防止数据库被下载

通常有3种方法.方法一,在数据库文件名后面加上#号,例如name#.mdb,这样IIS就以为是在请求该目录中默认的文件名,例如index.asp,如果IIS找不到就会发出403禁止浏览目录的错误警告;方法二,在IIS中是把数据库所在的目录设为不可读,这样就可以防止被下载;方法三,在数据库连接文件中使用ODBC数据源,攻击者即使获得了建立数据库链接的源代码,也无法从源代码中看到数据库的名字和存放路径.

3.防止SQL语句导致的注入漏洞

第一,完善管理权限.不在程序中使用较高权限访问数据库,例如,不使用Sa身份访问SQL数据库,尽量使用Windows2000身份验证模式进行SQLServer的身份验证.

第二,保持良好的程序开发习惯.编写数据库查询程序时,利用两个单引号来标注任何输入的变量给SQL程序.或采用使用replace函数屏蔽单引号的方法,针对类似于(select*fromusersWhereuserid等于’“&Userid&”’andPWd等于’“&Password&”’)的select语句使用replace函数替换为:(select*fromuserswhereuserid等于’replace(request.form(“userid”),’,“)&’andpwd等于’replace(request.form(“password”),’,”)&’.

第三,隐藏核心代码.不使用SQL语句直接访问数据库,而是使用存储过程或XMLWebService可以较好地保护核心程序代码和数据库结构不至外泄.

三、结束语

电子商务网站的数据库的安全性问题是近年来倍受关注的问题,确保其安全是一个系统工程.现仅从电子商务网站源码设计的角度,讨论了存在的安全问题,通过对这些问题的分析,将有助于加强网站开发人员的安全意识,减少开发过程给网站数据库带来的安全隐患.