分享
当前位置:首页 > 技术交流

网站建设数据库基本知识

作者:潍坊设计 网址:http://www.536123.com/technology/website-database.htm

网站建设最常用的数据存储工具就是各种数据库,包括Access、SQL Server、My Sql。潍坊设计www.536123.com总结了一下数据库在网站建设时应该注意哪些问题。

数据库安全

数据库安全是首先要关注的问题。SQL Server和My Sql一般是远程调用数据库,使用的是与网站文件相独立的空间,相对来说比较安全。但是由于网页在连接数据库时,往往在代码中包含了数据库的管理用户和密码,所以数据库安全是和网站安全紧密联系在一起的。

Access数据库使用的是单独的数据库文件,可以与网站文件在同一位置,所以它的安全性更加需要注意。

Access数据库存放位置,很多空间提供一个单独的数据库文件夹,该文件夹可以通过程序访问,但是用户不能直接访问。存放在数据库文件夹里面的文件不能通过浏览器或其他软件下载,所以可以保证数据库的安全。

对于没有提供单独的数据文件夹的空间,我们要采取措施,防止别人通过浏览器就能直接下载数据库。方法很简单,把数据库的文件名修改一下,例如“#database.mdb”。最关键的是“#”,这样数据库就不能被下载了。当然也可以改成“database.asp”,不过这种方式在网站管理时,如果需要直接修改数据库,需要把文件名改回“database.mdb”才能使用。

数据库可以设置访问密码,这样可以防止未经授权的用户访问数据库。数据库本身可能非常安全,但是由于网站程序中往往包含了数据库密码,如果别人能够查看网站程序源代码,也就能够得到数据库密码。所以要想保证数据库密码的安全,最重要的是保证网站空间的安全。

对于使用独立服务器或VPS的用户,可以使用DSN来连接数据库,这样在网站程序中就没有数据库密码了,也就保证了数据库密码的安全。

数据库操作

我们以Asp+Access为例。Windows系统最常用的连接数据库的方式是通过ADO。基本代码如下:

connstr="driver={microsoft access driver (*.mdb)};pwd=;dbq=" & server.mappath("#datebase.mdb") '数据库连接字符串

set conn=server.CreateObject("adodb.connection") '创建连接数据库的connection对象conn

conn.Open connstr '打开conn,并连接数据库

set rs=server.CreateObject("adodb.recordset") '创建数据操作的recordset对象rs

sql="select * from 表1" '设置数据库查询语句sql

rs.open sql,conn,1,1 '打开rs,并读取数据

response.write (rs("字段1")) '显示字段1的内容

rs.close '关闭rs

set rs=nothing '释放rs对象

conn.close '关闭conn

set conn=nothing '释放conn对象

上面是最基本的数据库操作代码,实际应用时要复杂得多,但最基本的原理是一样的。

在上面的代码中最重要的也是最容易忽略的是两个释放对象语句。这两句如果省略,在程序运行时并不会出现什么问题,但是如果一台服务器上有很多这样的程序,并且访问量比较大,这时会出现服务器资源耗尽,服务器停止响应的故障。这就是为什么有很多服务器在运行一段时间后,要重新启动服务器的原因。

对象创建以后,会占用相应的系统资源,只有在释放对象后,才会把占用的系统资源释放,如果程序中没有释放对象,那么这个对象就会一直占用系统资源,直到程序结束系统强制释放。如果网站访问量不大,一般情况下不会出现问题。但是大多数虚拟主机上面有几百个网站,不幸的是有很多网站程序中往往存在对象没有释放的问题。所以服务器运行一段时间后就会停止相应,只能重新启动服务器了。

密码安全

带有后台系统的网站,往往把后台管理员的用户名和密码存放在数据库中,最近出现的几起用户密码被盗取的事件,就是因为密码在保存时没有加密。

密码保存到数据库中应该加密,这样即使有人得到了数据库,也无法获得密码。

最常用的密码加密方式是使用Md5,这种加密方式是不可逆的,加密后的密码是无法还原的。不过现在有很多Md5解密网站,可以解密Md5加密后的密文,其原理是把很多原文和对应的密文保存到数据库中。解密时通过对密文进行对比查找,找到相同的密文后,把原文显示出来。除了常用的字符串以外,大部分是系统自动保存用户通过网站加密原文的记录。所以,不要通过网上现有的Md5加密解密网站来加密自己的原文,否则你的记录将被保存到数据库,这样别人就可以破解你的密文了。

上一篇文章:网站建设如何改变链接访问后的颜色