在Web应用占主流的今天,主流的黑客也都把攻击的目标转向了Web应用,SQL Injection, XSS... 各种攻击技术层出不穷,但是苍蝇不叮无缝的蛋,这么多种攻击技术无非都是把有毒的东西送到了蛋的内部。所以说只要输入校验做的好就可以阻止90%-95%的攻击。如何做输入校验才能尽可能的弥补所有的缝呢?下面这几个注意事项或许可以帮你一些
1. 找到Web应用所有的输入点,找到所有的能接受用户输入的地方,漏掉输入点也就漏掉了可能存在的缝。
2. 过滤每一个输入点,为每个输入点设定相应的校验规则和边界。
3. 不要忘记校验哪些隐藏域,cookie和url参数。
4. 验证从数据库里面得到的数据,这个是最容易忽视的地方,不要相信来自数据库里面的数据就是合法的数据。
5. 你是如何做输入校验的? javascript?如果只是用javascript做客户端校验, 风险还是很大的,一定要确保加上服务端的校验,否则如果客户端禁用了javascript或者客户端代码被人工修改,非法数据还是会进入系统内部的。
6. 隐藏异常信息,再周全的校验也不可能覆盖所有的case,如果非法数据造成了系统的异常,不要将详细的异常信息暴露给客户端,这些异常信息有可能成为系统的攻击入口。
在做输入校验的时候,从“什么样的输入才是合法的”入手会降低验证失效的风险,应该只为每个输入点的输入内容制定一个有限的,刚好够用的合法范围,除此之外的所有内容都当做是非法的。而从“什么样的输入是不合法的”入手则会增加验证失效的可能,因为你不可能穷举非法的输入。
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛