本文主要是介绍讨论“get”和“post”安全性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
get”安全,还是“post”安全?这或许是大家总结两者必须要分析的内容,因为这涉及到我们将内容从浏览器传送到服务器的安全性,选择不当将会带来巨大的不安全因素,从而可能带来巨大的损失。这篇博客,我将阐述一下,当然更多的还是希望各位大神发表一下见解,讨论一下下!
首先,我们来看一下两者最基本的区别:
- 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,对“如何对待学习知识的看法,是该囫囵吞枣,还是认真对待。那些该囫囵吞枣,那些该认真对待”的看法……
------------------------------------------------------------------------------
网友评论:
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
这篇关于讨论“get”和“post”安全性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!