网站设计

谈网站建设规范之网站程序安全性

网站程序的安全是系统开发职员必需考虑的重要因数之一,由于这涉及到网站的建设者、网站用户的诸多安全题目,假如不处理好,可能会给系统的使用者和治理者带来严峻题目。同时Web应用程序的安全解决方案不仅是技术题目,还涉及到治理等多个方面。宁波网站建设仅从四个最常见的、基本的、可通用的方面加以先容,并对每个安全题目从:为什么、怎样解决、怎样检测三个层次以自问自答的方式加以通俗易懂的先容。

    实在此四种技术开发职员都可能使用过其中一种或者都使用过,但是有时在开发的过程中并没有特地的引起正视,在每一个细节的处理时未留意网站的安全性,结果可能导致一些安全漏洞。宁波网站建设但愿通过此文使开发职员能够更加注重系统安全性,尤其测试职员能够通过监视去保证系统的安全性,进步产品质量。

1 防止SQL注入技术
    为什么必需防止SQL注入?
    相称大一部门程序员在编写代码的时候,没有对用户输入数据的正当性进行判定,使应用程序存在安全隐患。新手最轻易忽略的题目就是SQL注入漏洞的题目。用NBSI 2.0对网上的网站扫描,就能发现部门网站存在SQL注入漏洞,用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据。

    怎样防止SQL注入?
    好比URL、表单等提交信息时,通过一段防止SQL注入的过滤代码即可防止犯错信息暴露,或者通过转向,当系统犯错时转到一个提示犯错的页面等。同时服务器权限设置是一个非常重要的方面,因为涉及到服务器的配置比较多,本文不先容。
对于文本型输入,假如要进行检查,就得根据字段本身的性质进行。例如假如是春秋,就得限定必需是数字,大小必需限定在一个范围之间,好比说18-120之间。对于用户名,应该建立一个集合,这个集合里存放有被答应的字符,或被禁止的字符。
这里特别需要说明的一点是关于检查程序的题目。目前,程序对输入数据的检查是在前台通过客户端脚本完成的,这样攻击者很轻易就可以绕过检查程序。建议采用前后台结合的方法,既可以保证效率,有可以进步安全性。

    怎样测试程序已防止了SQL注入?
    如http://www.XXX.com/jiaren.asp?ID=544,此网站用ID来传送数值,假如在ID数值后面加一个SQL敏感符号,英文单引号“’”,打开此链接,假如泛起的是浏览器的默认犯错提示,则需要设置浏览器,使其错误提示泛起,方法为打开浏览器:选项—Internet选项—高级,在设置里找到显示友好的HTTP错误信息勾掉,确认后再刷新,假如此时泛起了数据库犯错的提示,如:Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21',那么说明本程序并没有防止SQL注入,反之假如只泛起了如:“提醒您, URL有误,请与治理员联系”之类的提示,说明SQL已经防止了注入。检测表单方法如:如提交脚本,在输入框中输入特殊字符如:script_等,在此不再叙述,测试者可以在网上找到良多这样的方法。
2 验证码技术
    为什么必需使用验证码?
    普遍的客户端交互如留言本、会员注册等仅是按照要求输入内容,但网上有良多攻击软件,如注册机,可以通过浏览WEB,扫描表单,然后在系统上频繁注册,频繁发送不良信息,造成不良的影响,或者通过软件不断的尝试,盗取你的密码。而我们使用通过使用验证码技术,使客户端输入的信息都必需经由验证,从而可以解决这个题目。

    怎样使用验证码技术?
    所谓验证码,就是将一串随机产生的数字或符号,天生一幅图片,图片里加上一些干扰象素,由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。放在会员注册、留言本等所有客户端提交信息的页面,要提交信息,必需要输入准确的验证码,从而可以防止不法用户用软件频繁注册,频繁发送不良信息等。

    怎样测试验证码是否有效?
    必需保证所有客户端交互部门都输入验证码,测试提交信息时不输入验证码,或者故意输入错误的验证码,假如信息都不能交,说明验证码有效,同时在验证码输入准确下提交信息,假如能提交,说明验证码功能已完善。

3 密码加密技术
    为什么必需使用密码加密?
    没有经由MD5加密的密码直接显示在数据库表中,假如被黑客下载数据,查出数据库中的密码,或者内部开发职员通过数据库查出用户的密码,都对以后用户的信息安全造成很大的影响。假如使用MD5加密后的密码,在数据库中看到的是一连串经由加密的字符串,不能看到真正的密码,这样能更好地保护网站的安全。固然黑客也可以使用暴力破解,但是我们再结合天生图片验证码技术,那暴力破解的难度就将大大增强。

    怎样使用MD5加密技术?
    MD5的全称是Message-Digest Algorithm 5,当用户登录的时候,系统把用户输入的密码计算成MD5值,然后再去和保留在文件系统中的MD5值进行比较,进而确定输入的密码是否准确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的正当性。这不但可以避免用户的密码被    具有系统治理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。

    怎样测试密码已经加密?
    凡是经由加密的密码,系统功能上多半有找回密码的功能,这是表面的测试,测试职员可以调用开发职员的数据表,查询是否经由加密,从而保证系统密码的安全,一般对具有大量会员的贸易性网站必需使用。

4 数据备份技术
    为什么必需使用数据备份?
    当网站被黑客攻击或者其它原因丢失了数据,可以将备份的数据恢复到原始的数据,保证了网站在一些人为的、天然的不可避免的前提下的相对安全性。

    怎样使用数据备份?
    一般人以为数据备份就只是数据库的备份,实在还有动态变化的图片、文件等也需要备份,由于文件、图片一般我们是不写入数据库里保留的。
一般我们采用数据库系统自动定时备份、定时自动删除几天以前的数据等,即可完成数据的备份功能。而图片、文件一般是不能自动备份,需要手工操纵,所以我们必需要按期手工对网站的图片、文件进行备份操纵。

    怎样测试数据已经备份?
    对于已经做好的网站,数据库系统都会自动备份到服务器某个文件夹下,那么测试时我们就需要让程序开发职员提供可以下载数据备份文件的路径,即可知道是否已经做了自动备份功能,而自动备份距离时间的确定,需要根据网站的更新频率来决定。

    本文仅先容四种网站程序的安全的解决方案,以及在此基础上的检测方法,以保证系统产品的安全性,进步产品质量,至于详细的具体操纵,方法有很多种,在此不予先容。
    网站程序的安全还有很多需要先容的,尤其是服务器的配置,好比我们必需坚持服务器配置权限最小化原则等,在此仅从程序上去先容,此四种网站程序的安全尺度适合所有以数据库为基础的网站程序,不管你使用什么样的开发语言,什么样的开发平台,都需要做好以上四个方面。

发布时间:2010-11-26 18:28:25