安全测试及B/S C/S安全性比较

时间:2024-02-20 21:05:59

点击图片可在新窗口打开

 

一、用户认证安全的测试要考虑问题:

  1.        明确区分系统中不同用户权限

  2.        系统中会不会出现用户冲突

  3.        系统会不会因用户的权限的改变造成混乱

  4.        用户登陆密码是否是可见、可复制

  5.        是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)

  6.        用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统

      7.        登陆失败次数的限制,防止暴力破解

      8.        输入的账户密码不能有含特殊意义的符号或命令语句

      9.        设置新密码之后,旧密码是否有效

      10.      cookie中是否保存用户名密码,如果保存要加密

      11.      防止SQL注入

      12.      密码不能明文传输

      13.      日志和数据库中是否记录明文密码

      14.      网页出错时,不泄露敏感资料

      15       页面超时机制的验证

 

 

二、系统网络安全的测试要考虑问题:

  1.        测试采取的防护措施是否正确装配好,有关系统的补丁是否打上

  2.        模拟非授权攻击,看防护系统是否坚固

  3.        采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,现在最常用的是NBSI系列和IPhacker IP)

  4.        采用各种木马检查工具检查系统木马情况

  5.        采用各种防外挂工具检查系统各组程序的客外挂漏洞

 

三、数据库安全考虑问题:

  1.        系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)

  2.        系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据的不完整,对于这个系统的功能实现有了障碍)

  3.        系统数据可管理性

  4.        系统数据的独立性

  5.        系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)

 

B/S与C/S安全性比较

很多用户在提到B/S架构设计的系统后, 第一个疑惑就是,.这个软件安全吗?为什么用户会有这样的疑惑,因为B/S架构放在internet上后,只要有IE浏览器的电脑都可以访问这个系统.而C/S架构只有安装了特定Client软件的用户才可以使用本系统,所以一直以来我们的用户都在担心着B/S的安全问题.而业内一些C/S的支持者也一直把B/S的安全问题作为一个不休的话题一直在讨论着.只能说这样的讨论非常无聊,我并不反对C/S有很多优点.但是从安全角度分析,B/S远远高于C/S

1 前面我们讲到"C/S架构只有安装了特定Client软件的用户才可以使用本系统",正因为在用户的电脑上安装了Client所以这个系统就面临着程序被分析,数据被截取的安全隐患,因为所有的数据必须从SERVER读到CLIENT然后进行操作,而B/S所有的数据操作全部在SERVER上进行在CLIENT只是POST一个HTML代码

2 目前很多传统的C/S系统还是采用2层结构也就是说所有的CLIENT直接读取SERVER中的数据,在CLIENT端包括了数据的用户名\密码等致命的信息,难道这样的系统安全吗?如果这样的系统放在INTERNET上,那么这个SERVER面向任何连接上INTERNET的用户都是开放的,而B/S架构的系统,在CLIENT上没有任何信息.面向用户开放的也只是WEBSERBER,而真正保存我们数据的信息全部在DATASERVER上,这个DATASERVER完全可以不放在INTERNET上,也只能让我们指定的WEBSERVER来访问.

3 当然现在也流行一种3层架构的C/S系统,但是我想问的是,你做的中间件要比microsoft 写的iis 更安全吗?目前有很多截数据包分析的各种手段,bs 可以使用https 加密来解决。但是你的C/S 服务器有考虑过这问题吗?你说你加密了数据,你加密的比https 还好吗? 你没有加密,那就是明文的,随便找一个sniff 监听软件就可以把数据截下来。

 

还有一个观点:B/S不如C/S

  C/S:可以使用多种网络协议,甚至可以自定义协议,从这个角度来看,C/S的安全性是有保障的。又因为它是基于客服端的,不容易被病毒攻击,但C/S太不方便(主要是不便于数据共享)不便于随时与用户交流,这也是C/S的一个致命缺点。并且C/S结构软件在保护数据的安全性方面有着先天的弊端。由于C/S结构软件的数据分布特性,客户端所发生的火灾、盗抢、地震、病毒等都将成为可怕的数据杀手。

  B/S:B/S相对C/S而言更容易被病毒光顾,使用http协议,虽然最新的https协议在安全性方面有所提升,但还是弱于C/S。

 

      对比之后,觉得这是无谓之争。。。先扫门前雪,把自己的产品安全性高最重要。

 

 

B/S与C/S安全测试重点比较

 

B/S结构

一般的B/S结构,都是多层架构的,有界面层、业务逻辑层、数据层。由于这种结构不需要客户端的安装,客户端主要通过浏览器来访问,因此客户端测试的重点是:客户端浏览器(不同类型和版本)以及客户端配置(cookie设置和分辨率设置)等测试。除客户端测试外,根据WEB系统常用技术还需要关注以下几个方面的测试:

 

1)链接测试

2)表单测试

3)脚本测试

4ActiveX控件测试

 

             C/S(Client/Server)结构

          即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。这种结构与B/S最显著的区别是需要安装客户端,通过客户端程序来访问应用系统,因此C/S客户端测试是重点,并且与B/S结构有所不同。

C/S客户端测试的重点有:

 (1)客户端安装测试

Ø 安装手册的评估

Ø 安装的自动化程度

Ø 安装选项和设置得测试

Ø 安装过程的中断测试

Ø 安装顺序测试

Ø 多环境安装测试

Ø 安装的正确性测试

Ø 修复安装测试

Ø 卸载安装测试

2)客户端升级测试

Ø 与变更相关的测试

Ø 变更内容的测试

3)客户端与服务器链接测试

4)服务器端数据验证

5)客户端可维护性测试