如何理解RESTful API的安全性

技术如何理解RESTful API的安全性如何理解RESTful API的安全性,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。保证RESTf

如何理解RESTful API的安全性,很多新手对此不是很清楚。为了帮助大家解决这个问题,下面小编就给大家详细讲解一下。有这种需求的可以借鉴,希望你能有所收获。

保证RESTfulAPI的安全性主要包括三个方面:

a)验证客户端

b)加密敏感数据并防止篡改。

c)认证后的授权

有几种常见的客户端身份验证方法:

向请求添加签名参数

1.为每个访问方分配一个密钥,并指定签名计算方法。要求必须将签名参数添加到访问方的请求中。这种方法最简单,但需要保证访问方密钥的安全存储,同时也要防范重放攻击。其优点是易于理解和实现,但缺点是需要承担安全保管密钥和定期更新密钥的负担,不够灵活,难以更新密钥和升级签名算法。

使用标准的HTTP身份验证机制。

HTTPBasic身份验证安全性较低,必须与HTTPS一起使用。HTTPDigest身份验证可以单独使用,安全性适中。

HTTPDigest认证机制还支持插入用户自定义的加密算法,可以进一步提高API的安全性。然而,在面向互联网的应用编程接口中,插入自定义加密算法并不常用。

这种方式需要保证访问方“安全域-用户名-密码”三重信息的安全存储,并注意防止重放攻击。

优点:基于标准,得到广泛支持(大量HTTP服务器端和客户端库)。服务器端HTTP认证的责任可以由WebServer(比如Nginx)、AppServer(比如Tomcat)和安全框架(比如SpringSecurity)来承担,这对应用开发者来说是透明的。HTTP认证机制(RFC2617)很好地体现了“分离关注点”的设计原则,保持了操作语义的可见性。

2.缺点:这种基于简单用户名的密码机制的安全性不可能高于基于非对称密钥的(如数字证书)。

使用OAuth协议进行身份验证

OAuth协议适用于授权外部应用程序访问本网站的资源。与HTTPDigest认证相比,的加密机制更加安全。需要注意的是,OAuth认证和HTTPDigest认证并不是相互替代的,它们的应用场景是不同的。OAuth协议更适合为面向终端用户的API提供授权,比如获取属于用户的微博信息等等。如果应用编程接口不面向最终用户维度,例如像七头牛云存储这样的存储服务,这不是OAuth协议的典型场景。

3.加密敏感数据并防止篡改。常见做法包括:

部署了SSL基础设施(HTTPS),所有敏感数据传输都基于SSL。

只对一些敏感数据(如预付卡的卡号、密码)进行加密,并加入一些随机数作为加密盐,防止数据被篡改。

身份认证后的授权主要由应用控制。通常应该实现一些基于角色用户组的授权机制,这方面的框架很多(比如SpringSecurity),但是大多数开发团队更喜欢自己实现相关的功能。

阅读以上内容对你有帮助吗?如果您想了解更多相关知识或阅读更多相关文章,请关注行业资讯频道,感谢您的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/86588.html

(0)

相关推荐

  • 怎么管理mysql二进制日志

    技术怎么管理mysql二进制日志本篇内容主要讲解“怎么管理mysql二进制日志”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么管理mysql二进制日志”吧!

    攻略 2021年11月18日
  • 什么是Capsulecorp-Pentest

    技术什么是Capsulecorp-Pentest本篇内容主要讲解“什么是Capsulecorp-Pentest”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“什么是Capsul

    攻略 2021年10月29日
  • Python如何爬取腾讯招聘信息

    技术Python如何爬取腾讯招聘信息Python如何爬取腾讯招聘信息,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1. 目标目标:https

    攻略 2021年10月26日
  • go语言怎么创建websocket服务(golang怎么并发聊天服务器)

    技术GO使用socket和channel怎么实现简单控制台聊天室今天就跟大家聊聊有关GO使用socket和channel怎么实现简单控制台聊天室,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大

    攻略 2021年12月20日
  • Form表单使用、ajax解决表单提交后页面跳转数据丢失的问题缺点

    技术Form表单使用、ajax解决表单提交后页面跳转数据丢失的问题缺点 Form表单使用、ajax解决表单提交后页面跳转数据丢失的问题缺点一、Form表单基本使用
    表单概念:在网页中主要负责 数据采集功

    礼包 2021年10月19日
  • Js的基本数据类型有哪些

    技术Js的基本数据类型有哪些本篇内容介绍了“Js的基本数据类型有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  在

    攻略 2021年11月5日