HTTP请求方法的安全性

首先,本文所说的HTTP方法的安全性是RFC 7231规范中定义的一种方法公共属性,它并不是说能够防止外部的攻击,而是一种语义。

什么是HTTP方法的安全性?

HTTP方法的安全性是HTTP方法的一种属性,并不代表“安全”的方法就不会遭受外部的攻击,这种“安全”针对的是服务器上的资源。

一般的,请发方法对服务器上的资源是只读的,我们就认为这种方法就是安全的

哪些方法是安全的

RFC7231规范中定义了HTTP协议支持的8个标准方法,分别为GET,HEAD,POST,OPTIONS,PUT,DELETE,CONNECT,TRACE。

注意还有一个常见的方法PATCH,此方法不在RFC7231中,是RFC5798中的。

其中,GET,HEAD,OPTIONS和TRACE是安全的方法。
为什么这5种方法是安全的,因为从语义规范上将,它们只从服务器上获取资源或查询一些状态,它们是只读的
例如GET,一般情况下只从服务器中获取资源,是一个“只读”方法。

这些被定义为安全的方法一定是安全的吗

再次强调一下,HTTP协议是一种协议,协议本质是一种约定,那么既然是约定,我们也可以不遵守约定,如果我们不遵守约定,谁也不能怎么滴。尽管GET,HEAD,OPTIONS和TRACE被定义为安全方法,我们仍然能够使用它们删除服务器上的资源,只要我们支持这样做。

但是,协议也是一种约束,我们还是有必要遵守的。按规矩办事永远没错。

安全性与幂等性

安全的方法一定是具有幂等性的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值