最近在做安全扫描,把遇到的一些问题以及一些解决方法记录下,以备后用.

扫描软件: ibm security appscan standard  规则: 17441

1. 已解密的登录请求 (高)

– 传递的参数名称避免使用语义明确的英文单词
> 如userid, userpwd, password等
– 传递参数中包含敏感数据时使用post方式提交并进行加密传输
– 采用ajax方式提交表单时,提交的参数名称应与对应的表单控件name属性不同或者去掉name属性,通过id属性取值.  
2. 查询中的密码参数(高)
– 同上  
3. 跨站请求伪造(中)
– 在请求开始时验证referer
– 使用html.antiforgerytoken()方法和 validateantiforgerytoken特性
> 注意:在这种情况下扫描有时会出现302无法通过扫描的问题,暂时不知道如何解决,但并不影响安全性.  
4. 跨站点脚本编制,sql注入(高)
– 在请求开始时检查所有传参(url,form,cookie),过滤掉所有危险关键字
>注意:关键字包括js,sql,mongodb中的特殊关键字,已经以上关键字的url编码和16进制形式


5. 使用 http 动词篡改的认证旁路(中)
– 可以在请求开始时检测请求方式并进行限制也可以配置路由约束
– 尽量在控制器上添加特性加以限制  
6. 注销后会话未失效(高)
– 清空session,取消当前会话,asp.net_sessionid的cookie置空