概述:今天跟RD高工聊天,说到了get/post,进而延伸出了很多安全性的知识,现在总结如下:
1、get、post、request的区别;
2、post安全性较高,如果想更高,可以使用https,进而又想到了https跟http的区别,其中包含了SSL的只是;
3、单纯的https也是不够安全的,所以在登录的时候,会加一个登陆控件,其利用中间的算法,会进一步加密,提高安全等级;
4、如果这时候有人对键盘监听,同样会获取用户的账号跟密码,故会使用软键盘,现在很多银行会使用自己的软键盘,防止用户监听。
以上就是其中讨论的内容,但是由于自己有很多的点不是很懂,故后面几篇文章,会逐个介绍下这些知识点。
一、post get requesst的区别
1、post 跟get的几点不同:
(1)是否修改服务器资源:post 是修改服务器端的内容,get是获取服务器端的内容。get是幂等的,同时由于只获取服务端的信息,在这一点来说,应该是比较“安全”的,最起码不会改变服务器的资源信息。post则会修改服务器上面的资源,如增删改等。
(2)传递URL的方式:post是在http头里面传递参数的,具体在http的entity_body变量中。而get是在url中传递参数的,在url中加问号,将url跟参数列表分开,参数都是采用键值对的方式传递。post参数也是通过键值对来传输的。
(3)使用方式:get在一般场景下都可以使用,但是post必须在表单form里面使用,但是有时候人们会贪图方便,在更新服务器资源时会使用get代替post.
(4)长度限制:http协议没有对数据传输长度做限制,http协议规范也没有对数据传输长度做任何限制。在实际开发中,会做一些限制:
get:特定浏览器和服务器对url有限制,理论上没有限制,其限制取决于操作系统的支持
post:同样没有特定长度的限制,只是服务器会对特定的post长度做限制。
(5)安全性:此处的安全性不同于(1)中所讲的是不是修改服务器资源的问题,而是真正意义上的安全(security)。post会比get安全性更高。通过get提交数据,用户名密码等敏感信息会明文显示在URL中,因为第一、浏览器会有缓存,第二、如果查看历史记录,别人会获取敏感信息,第三、会造成csrf(cross-site request forgery )攻击.
(6)
(7)在php中,request可以接收post和get信息。
以上信息参考:http://blog.youkuaiyun.com/gideal_wang/article/details/4316691