讨论“get”和“post”安全性

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

 

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


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

 

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

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


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


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


         菜鸟(我):额……


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


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


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


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

 

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


------------------------------------------------------------------------------

网友评论:

post比get安全?……o(︶︿︶)o 唉
你去下载个WPE封包截取玩玩,看它俩是不是一家人,是不是都安全……安全性是一样儿一样的。如果说是浏览器帮你缓存缓存,那就另当别论,当然,最好把敏感数据加密后再get

看看网址都没啥,你可以弄个token啊,先加密,把token放在session,服务端在通过token解密。除非服务器哼哼
他俩的区别呢:get快点post慢点,,GET传输快。其次,上传文件知道吧?不知道你用get上传还是post呢,你去get上传10M以上的文件给我看看,要是说编码弄到url里,10M你编码吧,编出来应该有个20M,换成小说就由千万余字,不说浏览器,就说服务器应该能等个10分钟处理完吧,我再多发送几个,让你服务器休克。。。

它俩都是提交数据,并且也都能返回,猫咪也知道。。。get发送和返回的谁都能看到,,post发送和返回内容得靠工具了,就像chrome浏览器开发者工具。o(︶︿︶)o 唉不多说了。


来自:http://blog.csdn.net/liujiahan629629/article/details/18511079

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值