网站安全性中的几个设计

         作为一名优秀的程序员,应充分考虑系统的安全性,这是程序员应具备的职业道德,也是系统经得起考验的基础。下面以网站设计中常见的安全问题做一些讨论。

      1. 用户身份验证
      传统的用户验证过程如下:将客户端输入的验证信息进行MD5加密形成“密文1”,发送到服务器端,服务器端从数据库读出验证信息的MD5值(密文2),然后“密文1”与“密文2”对比,若相等则认证成功,否则失败。 但是,如果“密文1”在传输过程中被非法获取,非法用户即使不知道“密文1”的内容,直接向服务器发送“密文1”并请求验证,则验证可能成功,用户的真实性无法保证。因此,需要对用户的验证过程进行改进。在客户端请求验证的同时,通过Ajax技术异步向服务器申请一个临时的验证码,客户端将用户信息进行n次MD5混合运算后生成“密文1”,附加验证码一起发送到服务器,服务器首先检查验证码是否与服务器端一致,若一致,到数据库中检索是否存在“密文1”的用户,存在则成功,否则失败。验证码是改进后的验证关键,同时验证码还可以防止入侵者使用程序自动登录服务器,进行密码的暴力破解。因此,技术上要求不能被复制,不能被扫描仪自动识别,随机生成。采用模糊的图片方式才能达到要求。

     2.URL请求验证
     URL请求验证是防止用户非法请求的一种方法。非法请求是用户直接向服务器发送URL请求,在请求中传递一些非法参数,绕过系统的认证程序,以达到入侵者的非法目的。非法URL请求是入侵系统的常用手段。因此,进行URL请求的验证是提高系统安全性的一种有效方法。要实现URL的请求验证,同样采用验证码的方式,当用户登录网站时,通过Ajax技术异步向服务器发送申请验证码的请求,当打开网站的某一内容时,将内容打开请求信息与验证码一起发送到服务器,服务器进行验证码的核对,如果正确,则显示,否则拒绝服务。

     3. 抗SQL注入式攻击
     SQL注入式攻击是指在输入框或URL中输入SQL语句,绕过验证程序,非法获取用户的访问权,进行非法操作的入侵方式。防御SQL注入式攻击的方法常用两种,一种是使用数据库管理系统的存储过程,另一种是对输入的信息和URL请求信息中的敏感关键字过滤。

     4.双重验证
      有些系统只在客户端进行验证,这是很不安全的。因为在传输过程中有可能被恶意篡改,服务器得到的将不是真实的数据,或者直接在URL中输验证请求,将会绕过客户端的验证程序,提交不安全的数据。因此,可以采用双重验证的方式,客户端的验证可以提高与用户的交互性,服务器端的验证保证数据的安全性。

     5. 非法链接和非法复制
     好多网站都使用框架结构,每个框架使用对应的页面,这些页面很容易被其他网站非法使用到自己的框架中。为解决这一问题,使用URL请求验证和图片打烙印相结合就可以实现。非法复制,大多数网站采用禁止使用右击功能,防止不懂计算机的用户可以,稍有计算机知识的人都很容易地获取信息。因此,可以对一些字做图片字典,当信息中包含这些字时,使用图片显示,用户非法复制后的内容将不是完整的内容。当然,笔者认为,既然已经公布于网络上的信息,没有必要做这么绝,何苦呢?如果客户要求,就这么做吧。

       以上只是我的经验和理解,难免有不足之处,希望读者批评指正。 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值