0.
通过客户端传送数据,会受到的攻击
- 可用通过修改表单的属性和属性值,或者发现隐藏表单字段
- 修改referer消息头
- 数据被客户端加密或者进行模糊处理,以模糊数据的形式提交到服务器,则尝试用超长值,错误字符串等方法攻击解密或者去模糊处理的服务器端逻辑。
- 对cookie进行修改
- 对ASP.NET viewState,可用通过base64解密表单数据内容
1.
收集数据
- 看看html表单:有没有禁用的表单(disabled=“true"),有没有长度限制(maxlength="1")
- 看看客户端脚本javascript
- 分析浏览器的扩件,如java applet,flash,silverlight,可进行源码分析,反编译
2.
如何安全处理客户端数据
- 对数据,客户端进行检查和过滤,服务器端也要进行检查和过滤
- 查看日志,对异常数据进行警报
3.
课后思考题,应用程序开发者希望阻止攻击者对登录功能发动蛮力攻击。由于攻击者可能以多个用户名为目标,开发者决定将登录尝试失败次数保存在一个加密cookie中,阻止任何失败次数超过5次的请求。有什么办法能够避开这种防御?
这种防御很容易突破。攻击者不需要提交跟踪登录尝试失败次数的cookie。他们可以在浏览器中禁用cookie,或使用自动化脚本不通过相关cookie提交请求。
其他防御措施包括使用CAPTCHA控件暂时阻止攻击者,或在登录失败次数达到五次后阻止源IP地址,但是,这样做可能会对使用代理或NAT防火墙的多个用户造成负面影响。