网站地图    收藏   

主页 > 入门引导 > 黑客攻防 >

讨论“get”和“post”安全性 - 网站安全 - 自学

来源:自学PHP网    时间:2015-04-15 14:59 作者: 阅读:

[导读] get安全,还是post安全?这或许是大家总结两者必须要分析的内容,因为这涉及到我们将内容从浏览器传送到服务器的安全性,选择不当将会带来巨大的不安全因素,从而可能带来巨大的...

   “ get ”安全,还是“ post ”安全?这或许是大家总结两者必须要分析的内容,因为这涉及到我们将内容从浏览器传送到服务器的安全性,选择不当将会带来巨大的不安全因素,从而可能带来巨大的损失。这篇博客,我将阐述一下,当然更多的还是希望各位大神发表一下见解,讨论一下下!

          首先,我们来看一下两者最基本的区别:

  1. GET 请求通过 URL (请求行)提交数据,在 URL 中可以看到所传参数。 POST 通过“请求体”传递数据,参数不会在 url 中显示 GET 请求提交的数据有长度限制, POST 请求没有限制。 GET 请求返回的内容可以被浏览器缓存起来。而每次提交的 POST ,浏览器在你按下 F5 的时候会跳出确认框,浏览器不会缓存 POST 请求返回的内容。 GET 对数据进行查询, POST 主要对数据进行增删改!简单说, GET 是只读,POST 是写。

             这是大家经常总结的两者之间的区别!前两天一位技术大牛给我讲解两者的安全性?大家看一下我们之间的对话:

             大牛:你认为 get 和 post 两者谁更安全一些呢?

             菜鸟(我):我认为 post , 更安全一些,因为 get 传输方式将在 URL 中显示参数,更容易引发一些“不怀好意”人的兴趣,例如上边出现了 username 和 userpwd 等特殊字符时,更容易给他们一些兴趣。虽然可以编码,当是也是可以解码的。而 post 则对方看不见,即使一些高手截获这些信息,也需要它筛选还有解码,相对来说比 get 方法更加安全。当然是没有绝对的安全的。

             大牛: NO! 你只看了表面! HTTP 协议中提到 GET 是安全的方法( safe method),其意思是说 GET 方法不会改变服务器端数据,所以不会产生副作用。如果是该用POST 的地方用了 GET ,又说 GET 不安全,那 GET 也太冤枉了。也就是说,只要我们正确选择使用 GET 和 POST ,那么 GET 是安全的。

             菜鸟(我):额……

             此段对话到此结束,没有再争论下去。因为它拿出了 HTTP 协议,当做了论据,这是在 IT 界很权威的文档。我没有很充足的理由去辩论。当时我还是认为它的这个说法有点不合适。

             在我认为,他把原因和结论弄反了。他的观点是:只要我们正确使用二者,因为GET 方法中不对数据进行修改,不传送一些保密的信息,而这些需要由 POST 来传输,所以说 GET 不存在安全问题,而需要注意的是 POST 传输的安全问题。

             我看来,正确使用二者,怎么算 GET 和 POST 两者正确的选择来使用了。这些规矩或者规范,是怎么制定的呢?为什么说 get 不能传送加密信息和修改数据呢?原因还是说它没有 POST 安全,所以 HTTP 协议规定了它用来传输不重要的读操作,所以才不会因为它而产生安全问题。因为它传送的数据不值得别人去盗取,没有价值。

               所以在我看来,还是 POST 这种方式,比 GET 更安全。既然是做比作,比作着来学习,我们就需要来让它们做相同的工作来看效果。总不能一个小孩儿跑 50 米比一个大人跑 100 米用的时间少,就说小孩儿的跑步速度比大人的快吧?

               虽然争论这个没有太大的用处,没有太大的意义,但是还是想写写,想听听: 1,大家对“ POST 和 GET 安全”的看法, 2 ,对“讨论两者安全这件事”的看法, 3 ,对“如何对待学习知识的看法,是该囫囵吞枣,还是认真对待。那些该囫囵吞枣,那些该认真对待”的看法……      

     

     

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论