HTTP安全随想,第一指导原则:不要相信任何用户的输入[]
2004-07-27 15:00
459 查看
HTTP协议本身就是非常不可靠的,不要相信任何用户的输入,包括Server变量里面的任何东西,这是HTTP安全编程的第一个指导原则。
看到有人问,如何防止站外提交Form,想法是好的,看起来答案是用HTTP_REFER这个变量,但是世界上,这个变量也是从HTTP Header里面REFER,用一个简单的socket程序,就可以自己随便构造一个HTTP Header, 所以用PHP,asp.net和Perl实现起来简单的很。在放到底一层的raw TCP编程上,连client的IP地址都可以随便骗你(IP欺骗,不过实现起来麻烦些)。
所以,不要相信任何东西,如何在Client端验证过的东西,在服务器端必须要重新验证一次。抱着这个观点放在脑子里,写出来的程序会好一些。
在所有接触过的语言中,ASP.Net中的验证控件设计的应该是最好的了,尤其是ASP.Net 2.0中的login 控件,实际上,绝大多数的漏洞都是从login里攻击的。
看到有人问,如何防止站外提交Form,想法是好的,看起来答案是用HTTP_REFER这个变量,但是世界上,这个变量也是从HTTP Header里面REFER,用一个简单的socket程序,就可以自己随便构造一个HTTP Header, 所以用PHP,asp.net和Perl实现起来简单的很。在放到底一层的raw TCP编程上,连client的IP地址都可以随便骗你(IP欺骗,不过实现起来麻烦些)。
所以,不要相信任何东西,如何在Client端验证过的东西,在服务器端必须要重新验证一次。抱着这个观点放在脑子里,写出来的程序会好一些。
在所有接触过的语言中,ASP.Net中的验证控件设计的应该是最好的了,尤其是ASP.Net 2.0中的login 控件,实际上,绝大多数的漏洞都是从login里攻击的。
相关文章推荐
- PHP 不要相信用户的任何输入
- web开发安全守则之永远不要相信用户的输入
- 【安全设计准则】永远不要相信客户端的输入
- 永远不要相信用户的输入
- 永远不要相信用户输入的!
- SharePoint品牌化和自定义--第一章节--SharePoint品牌化介绍(2)--关键话题和指导原则
- 实现一个"可变二维数组",这个二维数组的行数要求用户从键盘输入,每行的元素个数仍由用户从键盘输入. //数组元素值用户可以自定义.最后把二维数组打印出来.不要忘记释放数组内存. /*void main
- PHP开发不能违背的安全规则 过滤用户输入
- Windows Phone开发(13):如何规范用户的输入行为 转:http://blog.csdn.net/tcjiaan/article/details/7341513
- 谈谈移动互联网应用的用户注册登录安全考虑之不可逆加密的应用原则
- Http报头分析下呗,太通俗。别当真。我都不确定呢。不要相信我。
- 01-在线挑战详细攻略-《我很简单,请不要欺负我》 http://bbs.ichunqiu.com/thread-1783-1-1.html (出处: i春秋社区-分享你的技术,为安全加点温度)
- PHP开发不能违背的安全规则 过滤用户输入
- 如果做到安全的系统之验证用户输入.
- 谈谈移动互联网应用的用户注冊登录安全考虑之不可逆加密的应用原则
- 用户指导手册的一个原则
- web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
- Http报头分析下呗,太通俗。别当真。我都不确定呢。不要相信我。
- 如何写安全的Java Web应用之输入校验(二):不要依赖客户端的校验