安全测试的考虑点及测试方法

软件安全性测试用例优化版本

一、用户认证安全测试

核心目标:验证用户身份识别、权限控制及会话管理的安全性。

 

(一)权限管理测试

 

测试点

 

a.权限分级有效性:验证系统是否按角色(如管理员、普通用户)严格区分操作权限(例:管理员可删除数据,普通用户仅可查看)。

 

b.权限冲突检测:模拟多用户同时操作同一资源,检查是否出现权限覆盖或数据混乱(如 A 用户修改 用户权限时系统异常)。

 

c.权限变更一致性:修改用户权限后,验证其后续操作是否符合新权限范围(例:用户从编辑” 降为 查看” 后,是否仍可保存修改)。

 

(二)密码与会话安全测试

 

测试点

 

a.密码可见性防护:输入密码时,检查输入框是否以掩码(如“●”)显示,且不可通过复制粘贴获取明文。

 

b.会话劫持防护

 

复制已登录用户的 URL 链接,直接访问是否能绕过登录验证。

 

退出系统后,点击浏览器后退” 键,检查是否能重新进入系统(需验证会话令牌是否失效)。

 

二、系统网络安全测试

 

核心目标:验证网络防护措施、漏洞抵御及恶意攻击的应对能力。

 

(一)防护措施验证

 

测试点

 

a.补丁与配置检查:确认防火墙、入侵检测系统(IDS)等安全组件是否正确部署,系统补丁是否更新至最新版本。

 

b.漏洞扫描工具应用

(二)模拟攻击测试

测试点

a.非授权访问模拟:使用 NBSIIPhacker 等工具尝试暴力破解、端口扫描,验证防护系统是否拦截。

b.木马与外挂检测:通过木马扫描工具(如 Malwarebytes)检查系统是否存在恶意程序,使用防外挂工具(如 GameGuard)测试客户端程序的漏洞。

三、数据库安全测试

核心目标:确保数据机密性、完整性及可恢复性。

(一)数据安全属性测试

测试点

a.数据机密性:验证敏感数据(如银行账户、密码)是否加密存储,非授权用户是否可通过 SQL 查询获取明文。

b.数据完整性:模拟数据传输或存储过程中被篡改(如修改数据库表结构、删除字段),检查系统是否报错或功能异常。

c.备份与恢复能力

验证自动备份策略是否生效(如每日全量备份、增量备份)。

模拟数据库崩溃,使用备份文件恢复数据,检查数据完整性(如订单记录、用户信息是否丢失)。

四、浏览器与 Web 安全测试

核心目标:防范跨域攻击、XSSCSRF 等 Web 层安全漏洞。

(一)同源策略与跨域测试

同源定义:域名、端口、协议三者一致(例:http://example.com:80https://example.com:80不同源)。

跨域场景测试

a.验证<script><img>等标签是否可跨域加载资源(正常行为)。

b.测试 XMLHttpRequest 跨域请求是否被阻断(例:网站 JS 能否获取 网站数据)。

c.检查crossdomain.xml配置是否正确(如允许*.trusted.com跨域访问)。

(二)常见 Web 漏洞手工检测
1. SQL 注入测试

测试方法:在 URL 或表单中输入特殊字符,观察系统响应:

'or 1=1--          # 通用注入 payload

and (select count(*) from sysobjects)>0  # 数据库对象存在性检测

;exec master..xp_cmdshell "net user admin 123 /add"--  # 系统命令执行(Windows)
2. XSS 漏洞测试

测试向量(输入示例)

<script>alert('XSS')</script>                # 基础脚本注入

<img src="#" onerror=alert('xss')>          # 图片错误事件触发

<a href="javascript:alert('xss')">点击我</a> # 链接脚本执行

验证逻辑:输入后若浏览器弹出弹窗或控制台报错,可能存在 XSS 漏洞,需检查前端是否过滤特殊字符(如<, >, script)。

(三)业务逻辑安全测试
1. 越权访问测试

场景示例

用户 ID=1用户 ID=2,登录 账户后修改 URL 参数为/user/1,检查是否可查看 A 的个人资料。

测试方法:遍历 URL 中的数字参数(如/order/123),修改为其他用户 ID 或订单号,验证访问权限。

2. 密码找回功能测试

邮箱找回

a.修改邮箱参数(如请求中替换email字段为黑客邮箱),检查是否能接收重置链接。

b.解析重置链接中的参数(如user=admin&token=xxx),测试能否篡改用户名或 token 值。

手机找回:验证验证码是否为数字 字母” 组合(避免纯数字被暴力破解)。

五、文件操作与输入验证测试

核心目标:防范文件上传漏洞及输入型攻击。

(一)文件上传测试

测试点

a.格式与大小限制

尝试上传 exebat 等可执行文件,验证是否被拦截。

上传超大文件(如 10GB)或 0KB 空文件,检查系统是否崩溃或报错。

a.绕过机制测试

修改文件后缀(如.jpg改为.jpg.php),或使用压缩包嵌套(如shell.zip内含shell.php),验证是否绕过格式检查。

(二)输入验证测试

客户端与服务端双重验证

a.边界值测试

输入最大整数(如 4294967295)、负数、超长字符串(超过字段长度限制)。

a.特殊字符测试

输入~!@#$%^&*()_+<>:"{}|、中英文空格、NULL 值(null/0x0d 0x0a)。

a.代码注入测试

输入 HTML 标签(如<input type="text" onclick="alert(1)">)或 JavaScript 代码,验证是否被转义或过滤。

六、安全测试最佳实践

1.工具与手工结合:先用自动化工具扫描(如 AppScan)快速定位漏洞,再通过手工测试验证逻辑漏洞(如 CSRF、越权)。

2.持续更新策略:关注开源组件(如 SpringApache)的安全公告,及时修复已知漏洞。

3.日志与监控:测试系统是否记录用户登录、异常操作等日志,验证日志是否包含敏感信息(如明文密码)。

通过以上结构化测试用例,可全面覆盖软件安全的核心风险点,结合实际业务场景调整测试优先级,提升系统抗攻击能力。

 

posted @ 2025-07-02 17:48  溺水的小金鱼  阅读(134)  评论(0)    收藏  举报