如何进行Web应用的安全测试和输入校验
2009-10-22 16:16
519 查看
在Web应用占主流的今天,主流的黑客也都把攻击的目标转向了Web应用,SQL Injection, XSS... 各种攻击技术层出不穷,但是苍蝇不叮无缝的蛋,这么多种攻击技术无非都是把有毒的东西送到了蛋的内部。所以说只要输入校验做的好就可以阻止90%-95%的攻击。如何做输入校验才能尽可能的弥补所有的缝呢?下面这几个注意事项或许可以帮你一些
1. 找到Web应用所有的输入点,找到所有的能接受用户输入的地方,漏掉输入点也就漏掉了可能存在的缝。
2. 过滤每一个输入点,为每个输入点设定相应的校验规则和边界。
3. 不要忘记校验哪些隐藏域,cookie和url参数。
4. 验证从数据库里面得到的数据,这个是最容易忽视的地方,不要相信来自数据库里面的数据就是合法的数据。
5. 你是如何做输入校验的? javascript?如果只是用javascript做客户端校验, 风险还是很大的,一定要确保加上服务端的校验,否则如果客户端禁用了javascript或者客户端代码被人工修改,非法数据还是会进入系统内部的。
6. 隐藏异常信息,再周全的校验也不可能覆盖所有的case,如果非法数据造成了系统的异常,不要将详细的异常信息暴露给客户端,这些异常信息有可能成为系统的攻击入口。
在做输入校验的时候,从“什么样的输入才是合法的”入手会降低验证失效的风险,应该只为每个输入点的输入内容制定一个有限的,刚好够用的合法范围,除此之外的所有内容都当做是非法的。而从“什么样的输入是不合法的”入手则会增加验证失效的可能,因为你不可能穷举非法的输入。
1. 找到Web应用所有的输入点,找到所有的能接受用户输入的地方,漏掉输入点也就漏掉了可能存在的缝。
2. 过滤每一个输入点,为每个输入点设定相应的校验规则和边界。
3. 不要忘记校验哪些隐藏域,cookie和url参数。
4. 验证从数据库里面得到的数据,这个是最容易忽视的地方,不要相信来自数据库里面的数据就是合法的数据。
5. 你是如何做输入校验的? javascript?如果只是用javascript做客户端校验, 风险还是很大的,一定要确保加上服务端的校验,否则如果客户端禁用了javascript或者客户端代码被人工修改,非法数据还是会进入系统内部的。
6. 隐藏异常信息,再周全的校验也不可能覆盖所有的case,如果非法数据造成了系统的异常,不要将详细的异常信息暴露给客户端,这些异常信息有可能成为系统的攻击入口。
在做输入校验的时候,从“什么样的输入才是合法的”入手会降低验证失效的风险,应该只为每个输入点的输入内容制定一个有限的,刚好够用的合法范围,除此之外的所有内容都当做是非法的。而从“什么样的输入是不合法的”入手则会增加验证失效的可能,因为你不可能穷举非法的输入。
相关文章推荐
- 如何写安全的Java Web应用之输入校验(二):不要依赖客户端的校验
- 如何写安全的Java Web应用之输入校验(一):不要在输出中包含Debug信息
- 如何在chrome浏览器利用postman应用进行restful api接口请求测试
- 如何进行Web服务的性能测试?
- 如何对web系统进行全面测试
- [引]ASP.NET 移动网页 与 如何:使用仿真程序和浏览器在部署移动 Web 应用程序之前对其进行测试
- 如何利用cURL和python对服务端和web端进行接口测试
- 识别常见Web应用安全漏洞进行有效防止
- 使用分层的Selenium框架进行复杂 Web 应用的自动测试
- 应用层/安全层/传输层如何进行协议选型
- 使用分层的 Selenium 框架进行复杂 Web 应用的自动测试
- 使用Wisdom RESTClient进行自动化测试,如何取消对返回的body内容的校验?对排除的JSON属性字段不做校验?
- web安全:通俗易懂,以实例讲述破解网站的原理及如何进行防护!如何让网站变得更安全。收藏
- IBM Security AppScan Standard【Web应用安全测试工具】
- Android应用开发中如何使用RSA加密算法对数据进行校验
- 应用WAS对web进行压力测试实例详解
- Web 软件测试 Checklist 应用系列,第 1 部分: 数据输入
- 如何以根目录启动WEB项目进行测试
- 使用Wisdom RESTClient进行自动化测试,如何取消对返回的body内容的校验?对排除的JSON属性字段不做校验?
- [引]ASP.NET 移动网页 与 如何:使用仿真程序和浏览器在部署移动 Web 应用程序之前对其进行测试