为什么删除的请求要使用POST或者DELETE

一、前言

最近在项目开发时遇到这样一个业务请求:一个基础模块的删除操作。当时在写controller时,下意识地写成了下面的样子:

    @GetMapping("/deleteById")
    public R deleteById (@RequestParam("id") Long id) {
        // 相关业务处理
    }

虽然我没有严格遵循RESTFUL风格的写法,但是使用get请求删除数据还是有些怪怪的!

你肯定看到过这样的文章“新公司要求接口全部适用POST请求”、“同事因为一个GET请求造成线上Blocker级BUG”。这些问题都最终指向了一个最终的交汇点:Get请求真的那么的不安全吗?为什么?

二、GET,DELETE,PUT和POST

2.1、GET请求

2.2、POST请求

2.3、PUT请求

2.4、DELETE请求

三、GET请求是真正安全的吗?

上面已经写到GET请求是安全且幂等的了,为什么还会有这样个疑问呢?其实上面的描述是严格准守RESTFUL风格的写法,GET请求仅用于获取数据信息,但是你的get请求如果肩负起了除此之外的功能的时候就需要特别注意了!

3.1、 get请求携带重要信息

由于get请求是直接显示在地址栏的,如果请求携带了敏感信息,会有暴露的风险。

PS: 你刚登陆完一个网站,在跳转到个人中心时,地址栏就把你的密码、银行卡号、余额等信息赤裸裸地展示在了地址栏上面...

3.2、容易被劫持、盗刷

如果你的网站安全需求度高,且关键操作使用了GET请求,则给自己增加了隐患。

PS: 删除数据的接口是使用GET请求,我直接从地址栏中拿到连接,给你从0到999的数据都请求一遍,甚至写个脚本无限请求...

3.3、请求内容限制

GET请求是有长度限制的,相较于POST请求,它的携带数据会更小

3.4、其他安全隐患

再如上面的情况,你的一个删除的接口使用了GET请求,又恰巧被爬虫访问、或是被收录了。这就...

四、后记

说了这么多,我们可以总结如下:

① GET请求无罪,关键还是怎么去使用它

② 不推荐GET请求肩负起获取信息之外的功能操作

③ 如果对安全等级要求过高,慎用GET请求

(0)

相关推荐

  • HTTP请求方法有哪些?

    根据HTTP标准,HTTP请求可以使用多种请求方法. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELE ...

  • 微信怎么删除登录设备

    使用微信应用的时候,授权登录过其他的设备,在不再使用该设备了,我们可以考虑删除了,我们应该要养成经常查看常常登录自己账号的有哪些设备,如果发现了陌生设备,不要迟疑,立即删除以保证账号的安全. 操作方法 ...

  • Windows xp/7中系统安装服务卸载服务以及删除服务的命令

    第一步、Windows下安装到系统服务中: 在doc中:执行此软件 memcached.exe -d install (如果提示错误,要找到cmd.exe用管理员身份打开) 第二步、卸载的方法: 在d ...

  • word横线怎么删除?

    网友提问:在word中出现了很多横向,这种横线让读者阅读起来总是觉得很碍眼,那么在word中怎么将word 横线去掉呢? 一般我们删除横线的方法就是直接安装delete键来删除横线,但是如果按del键 ...

  • Windows xp/7中系统安装服务卸载服务以及删除服务的方法

    第一步、Windows下安装到系统服务中: 在doc中:执行此软件 memcached.exe -d install (如果提示错误,要找到cmd.exe用管理员身份打开) 第二步、卸载的方法: 在d ...

  • 删除Excel2010系列标签的3种方法

    经常使用Excel时,为了让用户更加直观的看到数据的内容,我们通常会添加标签,但有时候标签往往非常的多余,这时候我们可以通过几种方法进行删除标签。 方法一:选中要删除的系列标签,按下“Delete”键 ...

  • 电脑删除的快捷键是什么

    一:删除文本 1.Backspace退格键 如果你一不小心打错了个字,可以不用选中,退格键可以把光标前面的文本内容删除掉! 2.Delete键 Delete键是向光标后的文本内容删除. 如果你想删除大 ...

  • win10怎么利用cmd命令查找和删除保存的wifi密码?

    我们的路由器的wifi修改了,如果不删除保存的wifi密码,我们将无法上网.我们可以通过界面来删除,但是,假如我们是用telnet连接的,或是为了追求更高的效率,那么,我们就需要通过命令行来删除保存的 ...

  • Edius视频中的素材怎么删除?

    我们在编辑视频的过程中,其中某段视频不符合我们的需要,此时我们就可以对该视频进行删除操作,下面看看操作直接删除视频素材的步骤.

  • DW站点中新建文件夹和修改、删除、移动文件方法图解

    Dreamweaver站点中如何新建文件夹和修改.删除.移动文件?下面小编就为大家详细介绍一下,一起来看看吧! 方法/步骤 在如下图中呢是我们的dreamweaver中的一个站点“今日心事” 首先呢我 ...