post真的安全么?

经常听到有人这样说,PostGet更安全,似乎这种想法充满了整个网络,带给人根深蒂固的影响,但是Post真的比Get更安全么?

Http请求方式

Http请求发送方式常用的就是以下两种:

     Get机制

     Post机制

Get机制

Get机制的限制,比如最大1024字节,这个略去不表,Get最大的特点是提交时将参数通过url来发送。

Post机制

Post机制,实际是将数据http的数据部分,只不过不在url里面显示罢了。

请求举例

Get机制

例如:请求这个url: http://topic.csdn.net/u/20121016/08/2f7960fd-31bd-44ee-bec5-ed297af60039.html?seed=996321166&r=79901963

可以看出这是明显的get方式,有参数,通过chome浏览器得到

  

url里面就可以得到数值,但是如果是底层的调用,比如ajax请求,就不会在浏览器的地址栏中有显示,比如下面的请求:

 

Post机制

比如:博客园的登录请求:

http://passport.cnblogs.com/login.aspx?ReturnUrl=http%3a%2f%2fwww.cnblogs.com%2f

通过浏览器得到:

 

可以看到,这是post请求,并且地址栏里是没有参数信息,更没有密码等等信息,但是往下看,没错,Post请求一样,是将内容以明文的方式在传输,以下通过wireshark截包来看:

 

数据包的发送,如下: 

 

上图蓝色部分是Post的数据部分,post其实只是将数据写到了http尾部,如此而已。所以此处从安全上来讲,与不显示的后端ajaxGet请求,其实在安全性上是一样的。所以post更安全么,不见得,因为post的设计之初,本来就不是为了安全而来的。

扩展一下

Ajax跨域

不让ajax跨域,这样就来得合理了,因为如果允许跨域,那只需要写几行js代码,这样就会造成重要信息(比如密码)的泄漏。

Tcp连接个数

现代的浏览器,为了加快下载(加载)速度,已经将RFC文档里面的”should be at most 2 connections”中的should理解的出神入化,因为RFC里面仅仅是should而不是must,所以现代的浏览器同时允许建立的tcp连接一般是超过2tcp连接的。

Tcp协议

就像上篇TCP连接检测里面提到的那样,“tcp只是数据的发送与接收,包括握手,断开以及rsttime_waitclose_wait 等等。“,Http同样如果,知道协议,其实自己写一个简单的IIS真不费力。

最后

前面提到,TCP的连接个数,说到这里突然想到了一个问题,同时也再深入的扩展一下,为什么一台机器connect同一个IPporttcp连接数不能超过65535(当然实际65535也是达不到的)个呢?

 

答案请看这里《tcp的65535个连接之迷》 

 

 

转载于:https://www.cnblogs.com/ouzi/archive/2012/10/16/2726778.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值