REST API安全规划攻略

访客5年前黑客资讯1036

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是 *** ON Web Token,用于发送可经过数字签名和认证的东西,它包括一个紧凑的、URL安全的 *** ON目标,服务端可经过解析该值来验证是否有操作权限,是否过期等安全性查看。因为其紧凑的特色,可放在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]  黑客接单网

相关文章

选个“靶子”练练手:15个缝隙测验网站带你飞

俗话说进攻是最好的防护,而这与信息安全国际并没有什么不同。经过这15个成心存缝隙网站来提高你的黑客技术,你会成为最好的防卫者——不管你是一名开发人员、安全管理者、审计师或许测验人员。请紧记:游刃有余...

黑客接单 百度知道_找黑客一个网赌网站

18、monkey (↓ 5)剖析发现123456和password持续坚持最常运用弱暗码的第1和第2名,美国总统特朗普的姓名相关的暗码donald&quot第一次呈现在弱口令列表中,位居第2...

id机_在哪里能找黑客-想找网络黑客怎么找

「id机_在哪里能找黑客-想找网络黑客怎么找」白名单中随意挑个地址加在后边,可成功bypass,由于咱们现已清晰112ms是一次跳频序列的循环,那么从冗余数据中咱们能够推论:...

电脑软件管家哪个好用_求黑客高手联系方式2018-找一名黑客

2019 年 12 月 23 日,乌克兰电力网络遭到黑客进犯,导致伊万诺-弗兰科夫斯克州数十万户大停电,1 个月后,安全专家表明,证明这起停电是遭到黑客以歹意软件进犯电网所形成,2019 年 1 月...

怎么绕过Duo的双要素身份验证

写在前面的话 一般,在履行浸透测验时,一般经过远程桌面协议(RDP)连接到体系。我一般运用rdesktop或xfreerdp连接到主机,一旦取得凭证就能够随心所欲了。我最近碰到一件很操蛋的事便是一个我...

压缩包密码忘了怎么办,网站黑客在哪里找,找黑客怎么查老婆和别人的微信聊天记录

许多人在用ASP写数据衔接文件时,总会这么写(conn.asp):Substring right:要害字:sad Raven’s Guestbook[1][2]黑客接单渠道1、到Google搜索,si...