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

一、用户认证安全的测试要考虑问题:
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)脚本测试
(4)ActiveX控件测试
C/S(Client/Server)结构
即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。这种结构与B/S最显著的区别是需要安装客户端,通过客户端程序来访问应用系统,因此C/S客户端测试是重点,并且与B/S结构有所不同。
C/S客户端测试的重点有:
(1)客户端安装测试
Ø 安装手册的评估
Ø 安装的自动化程度
Ø 安装选项和设置得测试
Ø 安装过程的中断测试
Ø 安装顺序测试
Ø 多环境安装测试
Ø 安装的正确性测试
Ø 修复安装测试
Ø 卸载安装测试
(2)客户端升级测试
Ø 与变更相关的测试
Ø 变更内容的测试
(3)客户端与服务器链接测试
(4)服务器端数据验证
(5)客户端可维护性测试
安全测试及B/S C/S安全性比较的更多相关文章
- Web系统测试Web安全性测试
WEB安全性测试介绍WEB安全性测试--拒绝服务攻击WEB安全性测试--文件上传漏洞WEB安全性测试--跨站攻击WEB安全性测试--SQL注入一WEB安全性测试--SQL注入二WEB安全性测试--SQ ...
- 安全性测试:OWASP ZAP 2.8 使用指南(四):ZAP扫描移动应用安全
在做移动应用(APP,小程序等)测试时,需要关注应用安全性. ZAP是可以用来进行手机移动应用渗透性测试扫描的. 正因为ZAP是采用“中间代理”的形式,截取并扫描所有客户端与服务器的交互请求,作为客户 ...
- Acunetix在SDLC中的安全性测试
DevOps只是害怕尝试新事物.它们用于Selenium测试,这些测试占用了管道并提供了难以解释的结果,但是与此同时,它们经常避开了DAST测试,这远没有那么麻烦. 由于他们的应用程序是完全用Java ...
- 大数据时代下的SQL Server第三方负载均衡方案----Moebius测试
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 架构原理(Architecture) 测试环境(Environment) 安装Moebius( ...
- 模糊测试(fuzz testing)介绍(一)
模糊测试(fuzz testing)是一类安全性测试的方法.说起安全性测试,大部分人头脑中浮现出的可能是一个标准的“黑客”场景:某个不修边幅.脸色苍白的年轻人,坐在黑暗的房间中,正在熟练地使用各种工具 ...
- 模糊测试——强制发掘安全漏洞的利器(Jolt 大奖精选丛书)
模糊测试——强制发掘安全漏洞的利器(Jolt 大奖精选丛书) [美]Sutton, M.Greene, A.Amini, P. 著 段念赵勇译 ISBN 978-7-121-21083-9 2013年 ...
- (转)大数据时代下的SQL Server第三方负载均衡方案----Moebius测试
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 架构原理(Architecture) 测试环境(Environment) 安装Moebius( ...
- 为什么测试人员必须掌握Linux?
相信点进来的小伙伴不是对Linux感兴趣就是对测试感兴趣了,也希望本文可以帮助之前接触过Linux的小伙伴找到继续坚持学习下去的动力,之前没接触过Linux的小伙伴也能找到开始学习Linux的兴趣. ...
- 《java并发编程实战》读书笔记9--并发程序的测试
第12章 并发程序的测试 大致分为两类:安全性测试和活跃性测试 12.1 正确性测试 找出需要检查的不变性条件和后验条件.接下来将构建一组测试用例来测试一个有界缓存.程序清单12-1给出了Bounde ...
随机推荐
- linux下使用denyhosts防止ssh暴力破解
1.DenyHosts介绍 DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(/var/log/secure),当发现重 复的攻击时就会记录IP到/etc/hosts.de ...
- [django]django+datatable简单运用于表格中
使用datatable首先需要下载datatable文件,文件主要包括三个文件夹css,img,js相关文件,在django中如何配置呢? 首先需要在模板中引入datatable文件,格式如下: &l ...
- [转]ASP.NET Core 之 Identity 入门(一)
本文转自:http://www.cnblogs.com/savorboard/p/aspnetcore-identity.html 前言 在 ASP.NET Core 中,仍然沿用了 ASP.NET里 ...
- java.lang.Class.forName(String name, boolean initialize, ClassLoader loader)方法
描述 Java.lang.Class.forName(String name, boolean initialize, ClassLoader loader) 方法返回与给定字符串名的类或接口的Cla ...
- java怎么导入一个项目到eclipse
http://jingyan.baidu.com/article/48b37f8d649de31a646488e8.html点击左上角菜单栏file--import选择existing project ...
- struts2案例
Struts 2是一个MVC框架,以WebWork框架的设计思想为核心,吸收了Struts 1的部分优点.Struts 2拥有更加广阔的前景,自身功能强大,还对其他框架下开发的程序提供很好的兼容性.下 ...
- UVA - 10375 Choose and divide[唯一分解定理]
UVA - 10375 Choose and divide Choose and divide Time Limit: 1000MS Memory Limit: 65536K Total Subm ...
- Confluence Wiki -- 页面限制
Confluence Wiki 中 [页面设置] 应该如何理解? 当一个用户有这个权限后,这个用户可以对一个页面做限制,可以限制这个页面不能被其他用户浏览或编辑: 反之,如果没有这个权限,那么这个用户 ...
- Android开发之InstanceState详解
Android开发之InstanceState详解 本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceS ...
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 大数据支持分表优化
公司的短信平台,数据量越来越大了,需要对数据进行一些优化,下面是拆分后的数据库量参考. 新开发的软件模块,必须支持分表,拆表的功能一个数据表里,不适合保存1000万以上的记录新开发的业务模块,能分表的 ...