安全测试
1.取或操纵客户会话和 cookie
解决方案
不要接受外部创建的会话标识。
始终生成新的会话,供用户成功认证时登录。
2.防止用户操纵会话标识。
请勿接受用户浏览器登录时所提供的会话标识。
如果有验证码的。验证码改用application存储。同时记得释放资源
在登陆界面后增加下面一段代码,强制让系统session过期
3.不充分帐户封锁
登录尝试次数,帐户锁定大约 10 分钟,通常用这样的方法阻止蛮力攻击。
4.预测用户名和密码
不应使用易于预测的凭证(例如:admin+admin、guest+guest、test+test 等)
5.登录错误消息凭证枚举,不同的错误消息
不论名和密码哪个错误,都提示同样的消息。且同时加上登陆失败次数达到规定的帐户锁定功能。
6.已解密的登录请求,明文密码
解决方案
饶过AppScan软件扫描
对提交的敏感信息,一律以加密方式传给服务器。
采用基于SSL的HTTPS传输协议,对提交的敏感信息在传输过程中加密。
敏感信息包括:用户名、密码、社会保险号码、信用卡号码、驾照号码、电子邮件地址、电话号码、邮政编码等
7.SQL 注入
解决方案
过滤掉用户输入中的危险字符。
检查用户输入的字段类型,确保用户输入的值和类型(如 Integer、Date 等)有效,且符合应用程序预期。
屏蔽一些详细的错误消息,因为黑客们可以利用这些消息。
使用专业的漏洞扫描工具。
8.跨站点脚本攻击
恶意攻击者往Web页面里插入恶意html代码,嵌入脚本
解决方案
在你的WEB浏览器上禁用javascript脚本
开发者要仔细审核代码,对提交输入数据进行有效检查
9.SQL 注入”以外的攻击所触发的“数据库错误”, 插入的危险字符渗透了应用程序并到达 SQL 查询本身(即应用程序易受到 SQL 注入攻击)。
A确保用户输入的值和类型(如 Integer、Date 等)有效,且符合应用程序预期。
B. 利用存储过程,将数据访问抽象化,让用户不直接访问表或视图。当使用存储过程时,请利用 ADO 命令对象来实施它们,以强化变量类型。
C. 清理输入以排除上下文更改符号,例如:
[1] '(单引号)[2] "(引号)[3] \'(反斜线转义单引号)[4] \"(反斜杠转义引号)
[5] )(结束括号)[6] ;(分号)
9. 启用了不安全的 HTTP 方法