安全测试的考虑点及测试方法
软件安全性测试用例优化版本
一、用户认证安全测试
核心目标:验证用户身份识别、权限控制及会话管理的安全性。
(一)权限管理测试
•测试点:
a.权限分级有效性:验证系统是否按角色(如管理员、普通用户)严格区分操作权限(例:管理员可删除数据,普通用户仅可查看)。
b.权限冲突检测:模拟多用户同时操作同一资源,检查是否出现权限覆盖或数据混乱(如 A 用户修改 B 用户权限时系统异常)。
c.权限变更一致性:修改用户权限后,验证其后续操作是否符合新权限范围(例:用户从“编辑” 降为 “查看” 后,是否仍可保存修改)。
(二)密码与会话安全测试
•测试点:
a.密码可见性防护:输入密码时,检查输入框是否以掩码(如“●”)显示,且不可通过复制粘贴获取明文。
b.会话劫持防护:
▪复制已登录用户的 URL 链接,直接访问是否能绕过登录验证。
▪退出系统后,点击浏览器“后退” 键,检查是否能重新进入系统(需验证会话令牌是否失效)。
二、系统网络安全测试
核心目标:验证网络防护措施、漏洞抵御及恶意攻击的应对能力。
(一)防护措施验证
•测试点:
a.补丁与配置检查:确认防火墙、入侵检测系统(IDS)等安全组件是否正确部署,系统补丁是否更新至最新版本。
b.漏洞扫描工具应用:

(二)模拟攻击测试
•测试点:
a.非授权访问模拟:使用 NBSI、IPhacker 等工具尝试暴力破解、端口扫描,验证防护系统是否拦截。
b.木马与外挂检测:通过木马扫描工具(如 Malwarebytes)检查系统是否存在恶意程序,使用防外挂工具(如 GameGuard)测试客户端程序的漏洞。
三、数据库安全测试
核心目标:确保数据机密性、完整性及可恢复性。
(一)数据安全属性测试
•测试点:
a.数据机密性:验证敏感数据(如银行账户、密码)是否加密存储,非授权用户是否可通过 SQL 查询获取明文。
b.数据完整性:模拟数据传输或存储过程中被篡改(如修改数据库表结构、删除字段),检查系统是否报错或功能异常。
c.备份与恢复能力:
▪验证自动备份策略是否生效(如每日全量备份、增量备份)。
▪模拟数据库崩溃,使用备份文件恢复数据,检查数据完整性(如订单记录、用户信息是否丢失)。
四、浏览器与 Web 安全测试
核心目标:防范跨域攻击、XSS、CSRF 等 Web 层安全漏洞。
(一)同源策略与跨域测试
•同源定义:域名、端口、协议三者一致(例:http://example.com:80与https://example.com:80不同源)。
•跨域场景测试:
a.验证<script>、<img>等标签是否可跨域加载资源(正常行为)。
b.测试 XMLHttpRequest 跨域请求是否被阻断(例:A 网站 JS 能否获取 B 网站数据)。
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. 越权访问测试
•场景示例:
◦A 用户 ID=1,B 用户 ID=2,登录 B 账户后修改 URL 参数为/user/1,检查是否可查看 A 的个人资料。
•测试方法:遍历 URL 中的数字参数(如/order/123),修改为其他用户 ID 或订单号,验证访问权限。
2. 密码找回功能测试
•邮箱找回:
a.修改邮箱参数(如请求中替换email字段为黑客邮箱),检查是否能接收重置链接。
b.解析重置链接中的参数(如user=admin&token=xxx),测试能否篡改用户名或 token 值。
•手机找回:验证验证码是否为“数字 + 字母” 组合(避免纯数字被暴力破解)。
五、文件操作与输入验证测试
核心目标:防范文件上传漏洞及输入型攻击。
(一)文件上传测试
•测试点:
a.格式与大小限制:
▪尝试上传 exe、bat 等可执行文件,验证是否被拦截。
▪上传超大文件(如 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.持续更新策略:关注开源组件(如 Spring、Apache)的安全公告,及时修复已知漏洞。
3.日志与监控:测试系统是否记录用户登录、异常操作等日志,验证日志是否包含敏感信息(如明文密码)。
通过以上结构化测试用例,可全面覆盖软件安全的核心风险点,结合实际业务场景调整测试优先级,提升系统抗攻击能力。

浙公网安备 33010602011771号