当前位置:首页 > 黑客业务 > 正文内容

REST API安全规划攻略

访客4年前 (2021-04-15)黑客业务535

REST的全称是REpresentational State Transfer,它运用传统Web特色,提出一个既适于客户端运用又适于服务端的运用的、一致架构,极大程度上一致及简化了网站架构规划。
现在在三种干流的Web服务完成计划中,REST办法服务比较杂乱的SOAP和XML-RPC比照来讲,愈加简练,越来越多的web服务开始运用REST规划并完成。但其短少安全特性,《REST API 安全规划攻略》便是一个REST API安全规划的攻略,权当抛砖引玉,引荐网站后台规划及网站架构师们阅览。
1、REST API 简介
REST的全称是REpresentational State Transfer,表明表述性无状况传输,无需session,所以每次恳求都得带上身份认证信息。rest是依据http协议的,也是无状况的。仅仅一种架构办法,所以它的安全特性都需咱们自己完成,没有现成的。主张一切的恳求都经过https协议发送。RESTful web services概念的中心便是“资源”。资源可以用URI来表明。客户端运用HTTP协议界说的办法来发送恳求到这些URIs,当然可能会导致这些被拜访的”资源“状况的改动。HTTP恳求对应联系如下:
========== ===================== ========================
HTTP 办法 行为 示例
========== ===================== ========================
GET 获取资源的信息 http://xx.com/api/orders
GET 获取某个特定资源的信息 http://xx.com/api/orders/123
POST 创立新资源 http://xx.com/api/orders
PUT 更新资源 http://xx.com/api/orders/123
DELETE 删去资源 http://xx.com/api/orders/123
========== ====================== ======================
关于恳求的数据一般用json或许xml办法来表明,引荐运用json。
2、身份认证
身份认证包括很多种,有HTTP Basic、HTTP Digest、API KEY、Oauth、JWK等办法,下面简略讲解下:
2.1 HTTP Basic
REST由所以无状况的传输,所以每一次恳求都得带上身份认证信息,身份认证的办法,身份认证的办法有很多种,第一种便是http basic,这种办法在客户端要求简略,在服务端完成也十分简略,只需简略装备apache等web服务器即可完成,所以关于简略的服务来说仍是挺便利的。可是这种办法安全性较低,便是简略的将用户名和暗码base64编码放到header中。
base64编码前:Basic admin:admin
base64编码后:Basic YWRtaW46YWRtaW4=
放到Header中:Authorization: Basic YWRtaW46YWRtaW4=
正是因为是简略的base64编码存储,牢记牢记在这种办法下必定得留意运用ssl,否则便是裸奔了。在某些产品中也是依据这种相似办法,仅仅没有运用apache的basic机制,而是自己写了认证结构,原理仍是相同的,在一次恳求中base64解码Authorization字段,再和认证信息做校验。很显然这种办法有问题,认证信息相当于明文传输,别的也没有防暴力破解功用。
2.2 API KEY
API Key便是经过用户身份认证之后服务端给客户端分配一个API Key,相似:http://example.com/api?key=dfkaj134,一般的处理流程如下:
一个简略的规划示例如下。
client端:

server端:

client端向服务端注册,服务端给客户端发送呼应的api_key以及security_key,留意保存不要走漏,然后客户端依据api_key,secrity_key,timestrap,rest_uri选用hmacsha256算法得到一个hash值sign,结构途中的url发送给服务端。服务端收到该恳求后,首要验证api_key,是否存在,存在则获取该api_key的security_key,接着验证timestrap是否超越时刻约束,可依据体系成而定,这样就避免了部分重放进犯,途中的rest_api是从url获取的为/rest/v1/interface/eth0,最终核算sign值,完之后和url中的sign值做校验。这样的规划就避免了数据被篡改。经过这种API Key的规划办法加了时刻戳避免了部分重放,加了校验,避免了数据被篡改,一起避免了传输用户名和暗码,当然了也会有必定的开支。
2.3 auth1.0a或许Oauth2
OAuth协议适用于为外部运用授权拜访本站资源的状况。其间的加密机制与HTTP Digest身份认证比较,安全性更高。运用和装备都比较杂乱,这儿就不触及了。
2.4 JWT
JWT是JSON Web Token,用于发送可经过数字签名和认证的东西,它包括一个紧凑的、URL安全的JSON目标,服务端可经过解析该值来验证是否有操作权限,是否过期等安全性查看。因为其紧凑的特色,可放在url中或许HTTP Authorization头中,详细的算法就如下图:

3、授权
身份认证之后便是授权,依据不同的身份,颁发不同的拜访权限。比方admin用户、普通用户、auditor用户都是不同的身份。简略的示例:

上述是笔直权限的处理,假如遇到了平行权限的问题,如用户A获取用户B的身份信息或许更改其他用户信息,关于这些敏感数据接口都需求加上对用户的判别,这一步一般都在详细的逻辑完成中完成。
4、URL过滤
在进入逻辑处理之前,参加对URL的参数过滤,如:
/site/{num}/policy
限制num方位为整数等,假如不是参数则直接回来不合法参数,设定一个url清单,不在不在url清单中的恳求直接回绝,这样能避免开发中的api走漏。rest api接口一般会用到GET、POST、PUT、DELETE,未完成的办规律直接回来办法不允许,关于POST,PUT办法的数据选用json格局,并且在进入逻辑前验证是否json,不合法回来json格局过错。

[1] [2]  黑客接单网

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:https://therlest.com/106236.html

分享给朋友:

“REST API安全规划攻略” 的相关文章

猪肉怎么选?颜色有区别吗?今天做饭的时候发现上次买的猪肉颜色跟这

猪肉怎么选?颜色有区别吗?今天做饭的时候发现上次买的猪肉颜色跟这 买猪肉时,根据肉的颜色、外观、气味等可以判断出肉的质量是好还是坏。优质的猪肉,脂肪白而硬,且带有香味。肉的外面往往有一层稍带干燥的膜,肉质紧密,富有弹性,手指压后凹陷处立即复原。 次鲜肉肉色较鲜肉暗,缺乏光泽,脂肪呈灰白色;表面带...

宜家自助餐多少钱一位 「天津宜家自助餐多少钱」

食材的流转等息息相关的,白堤路店,就不用付钱了。吃完了,不像别的自助沙拉酱都兑了N多的水!其他」的也是10多块20块一份。鞍山西道,你绝对吃不腻。 举荐菜:当然是面啦!海鲜、你去尝尝吧。 举荐蔡:特色鸡串,金汉斯南美多少烤肉,腌好的肉和没腌的肉都有,200元一位,宜家家居,宜家2楼那个不是自助餐厅,...

今天发生的重大新闻5条,国内新闻最新消息10条

近期发生的额十件大新闻,伊朗重申继续实施核计划。本·拉登被击毙,近期国内外新闻要近期。 被关闭·国家最高科学技术奖揭晓"青藏铁路工程"等获奖·广西陆川一在建楼面坍塌14名工人坠地受伤,文汇报,执政党民族解放党总统,到了主要内容介绍完。 这是初中作业吧!月1日—德国总理默克尔倡议成立联合国经济理事会。...

今天猪肉价格多少钱一斤 「未来10天毛猪价格」

但是价格便宜点。比昨天下降 0点8;鸡蛋8点,我今天出售5头价格14点00,价格稳定;江苏活猪价15元/公斤左右,规模场品种猪价格在6点50-6,猪价或将有所回暖,点70元/斤之间,年的低迷期。 去年9月份以来,89元/公斤,山东省普通猪价格大约在6,从春节时的最高15元/公斤左右价格,现在江苏生猪...

存储过程oracle(oracle财务系统)

推荐教程:甲骨文教程 本文主要介绍甲骨文中的数据转换。 1.日期转换成字符串(以2016年10月20日为例) 选择to_char(sysdate,& # 39;yyyy-mm-DD hh24:mi:ss & # 39;)strDateTime从dual-获取年-月-日:分:秒-...

西湖论剑 Flagshop 分析复现

本文首发于“合天智汇”公众号 作者:xiaoleung title: 西湖论剑 Flagshop 分析复现 date: 2020-10-13 13:12:04 tags: CTF 本文推荐实验 PWN综合练习(三) 实验:PWN综合练习(三)(合天网安实验室) CTF PWN进阶训练实...

评论列表

掩吻可难
3年前 (2022-07-13)

务端给客户端发送呼应的api_key以及security_key,留意保存不要走漏,然后客户端依据api_key,secrity_key,timestrap,rest_uri选用hmacsha256算法得到一个hash值sign,结构途中的url发送给服务端。服务端收到该恳求后,首要验证api

萌懂长野
3年前 (2022-07-14)

份信息或许更改其他用户信息,关于这些敏感数据接口都需求加上对用户的判别,这一步一般都在详细的逻辑完成中完成。4、URL过滤在进入逻辑处理之前,参加对URL的参数过滤,如:/site/{num}/p

萌懂折奉
3年前 (2022-07-13)

之后服务端给客户端分配一个API Key,相似:http://example.com/api?key=dfkaj134,一般的处理流程如下:一个简略的规划示例如下。client端:serv

边侣听茶
3年前 (2022-07-13)

th、JWK等办法,下面简略讲解下:2.1 HTTP BasicREST由所以无状况的传输,所以每一次恳求都得带上身份认证信息,身份认证的办法,身份认证的办法有很多种,第一种便是http basic,这种办法在客户端要求简略,在服务端完成也十分简略,只需简略装备apache等we

森槿囍神
3年前 (2022-07-13)

ttps协议发送。RESTful web services概念的中心便是“资源”。资源可以用URI来表明。客户端运用HTTP协议界说的办法来发送恳求到这些URIs,当然可能会导致这些被拜访的”资源“状况的改动。HTTP恳求对应联系如下:========== =====

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。