REST API安全规划攻略

访客5年前黑客资讯966

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]  黑客接单网

相关文章

编程1小时

sudo apt-get updateDEFINE_PROTO_FUZZER(const test::common::http::HeaderMapImplFuzzTestCase& inpu...

拿站接单黑客_如何找志同道合的黑客

在研讨过程中,咱们对两个易受攻击的PHP脚本进行了测验。 其间,榜首个脚本十分简略,而且近乎愚笨,但它仅仅为了重现一个长途代码履行缝隙的运用场景:1. 装置 automake 及一些其他的包无其间,清...

Web安全学习:怎么自我定位与拟定学习方案

一   简介 经过本篇文章,您能够了解一个web安全从业人员所具有的大致常识面,一起我也拟定了一个墨守成规的学习方案,用以帮您找准自己的定位,并能够自己拟定合适自己的学习方案。 二   关键词 以囫囵...

能免费接单的黑客微信群_怎么找黑客改成绩

“猫池”说白了便是一个能够插许多许多张手机卡的“假手机”,经过“猫池”对应的软件,能够一起运用这些手机卡进行打扰短信的发送和打扰电话的拨打。 3.运用暗码办理器来安排暗码,生成安全随机的暗码,主动登陆...

黑客接单qq群号_去哪儿找电脑黑客技术

0day缝隙一直是作为APT安排施行进犯所依靠的技能制高点,在这儿咱们回忆下2018年下半年首要的0day缝隙和相关APT安排运用0day缝隙施行的在野运用进犯活动。 图1:进犯者的主页运用(CVE-...

黑客接单 诚信黑客2017_找黑客的 信i368aa

二、0day 缝隙和在野运用进犯为了供给上下文,实践上会将其分化成各个小框,咱们需求将它包装在所谓的视图中。 这些数据视图能够增加类型化的数组,而且能够运用许多不同类型的类型数组。 unsigned...