某程序员入职国企,写了几个接口,用了Put和Delete,却被前端开发要求改成Post

01

某程序员入职国企,开发接口时,根据接口的功能,分别使用了put和delete类型,没有想到前端开发看到后,直接让他统一改成post。

图片

不过很多网友却并不站在楼主这边,更有人说楼主这是培训傻了,培训仔不要造次,公司规范应该在八股文之上。

图片

不要搞特殊,应该遵守公司的规范,同时前端开发的工作量也会小一些,可以复用现有的代码。

也有很多网友就restful各种方法的安全性进行了讨论,有一部分人认为,post要比put和delete要安全,所以要使用post方法。

图片

但是也有人表示不认同,认为安不安全和使用的协议有关,和业务逻辑处理有关,而和使用的put方法还是post方法没有任何关系。

更有人举例进行了说明,假如写了两个接口,一个put,一个post,相同的业务逻辑,post不做任何参数校验,而put方法中做参数校验,请问哪个更安全?他认为那些说put和delete没有post安全的人,都是面试八股文背傻了的人。

不过更多数人还是同意将put和delete方法更改为post的,这样既统一又简单省心,可以减少不必要的麻烦,也能方便一下前端同学。

很多人表示,自己工作十几年了,从来没有使用过put和delete,不止国企,现在互联网公司也是基本只使用get和post。

02

对于上面的讨论,除了接口设计的繁琐性外,争议的焦点还在于RESTful接口的安全性。那么我们就来对比一下。

GET方法用于获取资源,具有幂等性和可缓存性,所以相对来说较为安全。因为GET请求通常是用于获取数据,不会对服务器资源进行修改,所以不会引起安全问题。但是,如果GET请求中包含了敏感信息,如用户的个人信息或者密码等,就需要对返回结果进行加密或者使用HTTPS协议进行传输,以防止信息泄露。

POST方法用于创建新资源,不具有幂等性。由于在数据的创建过程中,POST请求往往需要传递更多的数据和参数,存在一定的安全风险。在使用POST方法时,我们需要注意数据的合法性校验和防止SQL注入等安全问题。此外,在传输过程中,也建议使用HTTPS协议,以确保数据的传输安全性。

PUT方法用于更新已有资源,具有幂等性。在使用PUT方法时,我们需要对请求进行验证,确保更新的资源是合法的,并提供相应的权限控制机制,以防止非法修改或篡改数据。同样,建议使用HTTPS协议来确保数据的传输安全性。

DELETE方法用于删除资源,具有幂等性。在使用DELETE方法时,同样需要进行权限验证,以确保请求的合法性,并采取相应的安全机制来防止非法删除或者误删除数据。

RESTful接口作为一种设计规范,为我们提供了一种思维方式和标准,RESTful接口的安全性与我们的设计和实现密切相关。比如我们通常会进行以下设计来保证接口的安全性。

1、身份验证:如基本身份验证,令牌验证,OAuth等,可以验证请求的发送者身份,并确保只有经过身份验证的用户才能访问受保护的资源。

2、访问控制:如基于角色的访问控制和基于权限的访问控制,可以限制用户对资源的访问,并确保只有授权用户可以执行特定操作。

3、数据传输安全:如使用HTTPS协议进行传输数据。

4、输入验证:对接口接收到的输入数据进行严格的验证和过滤,包括对URL参数、请求头、请求体等的处理,以防止注入攻击、跨站脚本攻击或其他安全漏洞的利用。

好了,对于这一话题,你有哪些看法呢,欢迎留言讨论

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值