如何理解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)

相关推荐

  • Java基础篇之如何使用日期与时间API技术

    技术Java基础篇之如何使用日期与时间API技术这篇文章主要介绍“Java基础篇之如何使用日期与时间API技术”,在日常操作中,相信很多人在Java基础篇之如何使用日期与时间API技术问题上存在疑惑,小编查阅了各式资料,

    攻略 2021年10月19日
  • 梦想当老师的英语作文,我的梦想老师英语作文50字左右

    技术梦想当老师的英语作文,我的梦想老师英语作文50字左右《My dream is to be a teacher》i have a dream,i want to be a english teacher.first,e

    生活 2021年10月28日
  • Swift中字符串类型及常用方法有哪些

    技术Swift中字符串类型及常用方法有哪些这篇文章主要介绍了Swift中字符串类型及常用方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. 构造

    攻略 2021年11月6日
  • 对长亭晚,杯杯敬的有钱人这一首诗什么诗

    技术对长亭晚,杯杯敬的有钱人这一首诗什么诗《诗经》死生契阔对长亭晚,与子成说。执子之手,与子偕老。《邶风·击鼓》
    今夕何夕,见此良人。《唐风·绸缪》
    青青子衿,悠悠我心。《郑风·子衿》
    手如柔荑,肤如凝脂,领如蝤蛴,齿如

    生活 2021年10月29日
  • vue学习—列表过滤

    技术vue学习—列表过滤 vue学习—列表过滤!DOCTYPE html
    htmlheadmeta charset=”UTF-8″ /title列表过滤/titlescript type=”te

    礼包 2021年11月14日
  • Java中类和对象的示例分析

    技术Java中类和对象的示例分析这篇文章主要介绍了Java中类和对象的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。类可以看成是创建Java对象的

    攻略 2021年11月13日