避开客户端控件

我们应该清楚,客户端是可以提交任意数据的,web应用程序依靠客户端执行各种措施,对它提交的数据进行控制,这会造成一个基本的安全缺陷,用户能够完全控制客户端和所提交的数据,并避开任何在客户端执行但在服务器端不采用的控件。

一.通过客户端传送数据
1.隐藏表单字段
2.HTTP cookie
3.URL参数
4.referer消息头
5.模糊数据
6.ASP.NET中的viewstate

二.收集用户数据
1.长度限制
2.基于脚本的确认
3.禁用元素

三.浏览器扩展
反编译浏览器扩展,可以看出客户端对数据模糊的处理过程,生成攻击者想要的经浏览器扩展处理的数据
1.下载字节码
2.反编译字节码,java可以使用JAD等,查看源码可以使用JD-GUI等

四.安全处理客户端数据
客户端数据是不可信任的数据,但是有时为了性能考虑也在客户端进行数据确认,比如输入的日期是否合法。但是服务器端必须对客户端提交的数据再次进行确认,因为数据确认工作只能放在服务器端。同时,我们也应该想到这种机制。当在客户端进行了数据确认,但是恶意数据或者不符合业务逻辑的数据还是到达了服务器,并且未通过服务器确认,此时我们应该考虑攻击者使用截断代理软件进行攻击。应该将此事件写入日志,因为这一现象极有可能是恶意的。所以除了在服务器端安全处理来自客户端的数据外,我们还应该对恶意数据时间进行记录,如写入日志。

发表评论

电子邮件地址不会被公开。 必填项已用*标注