首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

5个REST API安全准则

REST允许通过简单的URL(而不是复杂的请求主体POST参数)与基于web的系统交互。...例如,GET请求可能是对应读取实体,而PUT更新现有实体,POST创建一个新实体,DELETE删除现有实体。 只允许需要的动词,其他动词返回适当的响应代码 ( 例如,禁止一个403)。...2 - 输入验证 帮助用户高质量的数据输入您的Web服务中,例如确保邮政编码对提供的地址有意义,或日期有意义。 如果不是,拒绝该输入。...当设计REST API时,不要只使用200成功或404错误。 以下是每个REST API状态返回代码要考虑的一些指南。 正确的错误处理可以帮助验证传入的请求,并更好地识别潜在的安全风险。...200 OK -回应一个成功的REST API的行动。HTTP方法可以是GET,POST,PUT,PATCH或DELETE。 400错误请求 -请求格式错误,如消息正文格式错误

3.7K10
您找到你想要的搜索结果了吗?
是的
没有找到

API设计:先思考再编码

参数:在端点中用于指定动态参数,如ID或查询搜索。 响应:内容类型,HTTP状态代码和主体数据。 除此之外,蜜蜂是一个协作平台,用于创建、呈现、测试和服务您的API。...POST /cakes/ 更清晰的URL,也会告诉我们可能其他方法按这种方式使用,如GET /cakes。 4.单数还是复数!...name=apple&rating=4 您也可以使用连接参数&,搜索apple和评级为4的蛋糕。 6.使用4xx返回错误。 每个人都憎恨HTTP响应状态代码是2xx,却返回一个错误的消息!...403:禁止访问,客户端被授权,但是没有访问资源。 404:着名未找到,表示资源不可用。 7.请清楚地描述您的错误 当发生问题失败时,通知客户端发生了什么以及如何恢复。...难以误用:如果发出了错误的请求,返回错误并提供信息。 简单是比复杂更好:简单的事情在每个方面都很容易。 在实现它之前使用你的API:创建一个模拟服务器来获得最终结果并演示。

1.1K30

状态码的解析与应用【新生抓紧进来学习啦】

以上是状态码的大致分类,那么我们来看看常见的状态码吧 100:当客户端提交一个包含主体的请求时,返回100。...不支持请求中的使用方法 413:请求主体过长,服务器无法处理 414:请求URL过长 500:服务器执行遇到错误 503:表示能响应,但无法获取,应核实是否因为执行了某种行为导致了这样...那么重点来了,不同的响应能给我们渗透测试带来什么线索呢,下面我就来给大家讲讲 302 found:如果重定向一个登录页面,那么只有通过验证的用户才能访问。...400:出现这种情况可能是因为使用词汇包含空白符或无效语法 401/403:表示请求资源存在但是不管验证身份如何不允许访问。...500:在查找内容的过程中,表示应用希望在请求资源时提交参数 所有的状态码返回给测试人员时,测试人员都应分析其原因,很多时候渗透测试在意细节,比如,你用put和post提交的结果不同,就有可能存在漏洞的线索

74500

Postman----API接口测试神器

API测试——测试API集合,检查它们的功能、性能、安全性,以及是否返回正确的响应。...API测试用于确定输出是否结构良好,是否对另一个应用程序有用,根据输入(请求)参数检查响应,并检查API检索和授权数据所花费的时间。...添加集合 您可以每个API调用添加到集合中并创建一个集合,该集合可供应用程序重用。 ? 一个人可以导入别人的集合,也可以导出他们的集合,这样其他人也可以在他们的电脑上使用这个集合。 ? ?...400  - 对于错误请求。请求无法理解或缺少任何必需参数。 401  - 对于未经授权的访问。身份验证失败或用户没有所请求操作的权限。 403  - 被禁止,访问被拒绝。...错误处理。 如果脚本中出现错误,则只有一个测试失败,而其他测试仍在运行,并显示错误。 丰富的断言。 它提供了对所有CHAI-JS和CHAI-HTTP断言以及API的一些自定义断言的完全访问权限。

3.8K30

REST API 设计最佳实践:如何构建、设计和使用 API

注意:param 是一个URI参数(如ID或缩写)的占位符,你第一个想法可能是创建类似于这个的端点: GET: /books/:slug/generateBookCover/ 但是,在这里GET方法在语法上足以说明我们正在获取...在响应体中返回错误详情 当API服务器处理错误时,错误详细信息包含在JSON主体中可以帮助使用者进行调试,这是是非常方便的,如果您还能说明哪些字段受到了错误的影响,那就更好了!...你的API最糟糕的事情莫过于返回一个带有200 OK状态码的错误响应。 这是最差的语义,相反,应该返回一个能准确描述错误类型的有意义HTTP状态码。...有一天,当我REST API集成到我的一个项目中时,每次调用都收到HTTP 500内部错误。...了解401未授权和403禁止之间的区别 如果我每看到一次开发人员甚至有经验的架构师搞砸这个问题就能得到一个25美分硬币……在处理REST API中的安全错误时,很容易弄混错误是与身份验证还是授权(又称权限

35040

RESTful规范

zoo=1&area=3 ; 二、   版本 应该API的版本号放入URI中 https://api.example.com/v1/zoos 三、 Request HTTP方法 通过标准HTTP方法对资源...以 DELETE为例,第一次DELETE返回200表示删除成功,第二次返回404提示资源不存在,这是允许的。 复杂查询 查询可以捎带以下参数: . 示例 备注 过滤条件 ?...§500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户无法判断发出的请求是否成功。...状态码的完全列表参见这里 URI失效 随着系统发展,总有一些API失效或者迁移,对失效的API返回404 not found 或 410 gone;对迁移的API返回 301重定向。...自己的代码不要抛这个异常 六、其他 (1)API的身份认证应该使用OAuth2.0框架 (2)服务器返回的数据格式,应该尽量使用JSON,避免使用XML (3)比较复杂的接口不能确定是使用POST还是

1.9K00

8.寻光集后台管理系统-用户管理(增删改查)

如果任何权限检查失败,引发exceptions.PermissionDeniedorexceptions.NotAuthenticated异常,并且视图的主体将不会运行。...当权限检查失败时,根据以下规则返回403 Forbidden”或“401 Unauthorized”响应: 请求已成功验证,但权限被拒绝。— 返回 HTTP 403 Forbidden 响应。...— 返回 HTTP 403 Forbidden 响应。 请求的身份验证没有成功,并且最高优先级的身份验证类确实使用了WWW-Authenticate头。...如果你使用一个常规的APIView,你需要自己调用分页API来确保你返回一个分页的响应。...:8000/users/ GET请求:http://127.0.0.1:8000/users/ POST请求(无参数):http://127.0.0.1:8000/users/ POST请求(有参数

1.8K30

如何设计好的RESTful API

403Forbidden:用户通过了身份验证,但是不具有访问资源所需的权限 404NotFound:所请求的资源不存在,或不可用 415UnsupportedMediaType:客户端要求的返回格式不支持...比如,API 只能返回 JSON 格式,但是客户端要求返回 XML 格式 这里要注意状态码 401 和 403 的区别 5xx 状态码 5xx 状态码表示服务端错误,通常只会用到两个: 500InternalServerError...user/{id}" } ] }]} 使用 Spring 框架的小伙伴可以快速的体验一下这种方式,Spring 官网项目 Spring HATEOAS , 会快速的参数都做替换..., 查看 API URL 中的 id 直接替换成 1。...同时在右侧工具栏打开 API,会自动生成 demoData 请求参数,实现快速调用测试: ?

1.6K20

赏心悦目的RESTful API这样来设计!

403Forbidden:用户通过了身份验证,但是不具有访问资源所需的权限 404NotFound:所请求的资源不存在,或不可用 415UnsupportedMediaType:客户端要求的返回格式不支持...比如,API 只能返回 JSON 格式,但是客户端要求返回 XML 格式 这里要注意状态码 401 和 403 的区别 5xx 状态码 5xx 状态码表示服务端错误,通常只会用到两个: 500InternalServerError...//localhost:8080/user/{id}" } ] }] } 使用 Spring 框架的小伙伴可以快速的体验一下这种方式,Spring 官网项目 Spring HATEOAS , 会快速的参数都做替换..., 查看 API URL 中的 id 直接替换成 1。...API 位置 同时在右侧工具栏打开 API,会自动生成 demoData 请求参数,实现快速调用测试: JSON-Viewer JSON-Viewer 是 Chrome 浏览器的插件,用于快速解析及格式化

1.4K10

一文牢记HTTP状态码(图解HTTP状态码)

比如,使用GET方法时,对应请求资源的实体会做为响应返回;而使用HEAD方法时,对应请求资源的实体首部不随报文主体作为响应返回(即在响应中只返回首部,不会返回主体部分)。...该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不允许返回任何实体的主体。比如,当从浏览器发出请求处理后,返回204响应,那么浏览器显示的页面不发生更新。...301,302,303之间的联系 当301、302、303响应状态码返回时,几乎所有的浏览器都会把POST改成GET,并删除请求报文内的主体,之后请求会自动再次发送。...301,302标准是禁止POST方法改变成FET方法,但实际使用时大家都会这么做。 304 Not Modified ?...403 Forbidden ? 该状态码表明对请求资源的访问被服务器拒绝了。服务器没有必要给出拒绝的详细理由,但如果想做说明的话,可以在实体的主体部分对原因进行描述,这样就能让用户看到。

10.9K22

Vue中Axios的封装和API接口的管理

例如上面的思想:如果后台返回的状态码是200,则正常返回数据,否则的根据错误的状态码类型进行一些我们需要的错误,其实这里主要就是进行了错误的统一处理和没登录或登录过期后调整登录页的一个操作。...get函数返回一个promise对象,当axios其请求成功时resolve服务器返回 值,请求失败时reject错误值。最后通过export抛出get函数。...考虑接口会有多个不同域名的情况,所以准备通过js变量来控制接口域名。这点具体在api里会介绍。 3.增加了请求超时,即断网状态的处理。...后者优先于前者。 3.restful风格的接口,也可以通过这种方式灵活的设置api接口地址。 最后,为了方便api的调用,我们需要将其挂载到vue的原型上。...$api = api; // api挂载到vue的原型上 然后我们可以在页面中这样调用接口,eg: methods: {         onLoad(id) {               this

3.2K80

程序员必须要了解的网络协议HTTP,也许你只了解其中一部分

HEAD 获取报文首部 和GET 方法类似,但是不返回报文实体主体部分。主要用于确认 URL 的有效性以及资源更新的日期时间等。...POST 传输实体主体POST 主要用来传输数据,而 GET 主要用来获取资源。 PUT 上传文件,由于自身不带验证机制,任何人都可以上传文件,因此存在安全性问题,一般不使用该方法。...会返回 `Allow: GET, POST, HEAD, OPTIONS` 这样的内容。...403 Forbidden :请求被拒绝。 404 Not Found:服务没找到 5XX 服务器错误 500 Internal Server Error :服务器正在执行请求时发生错误。...新的浏览器 API 已经允许开发者直接数据存储本地,如使用 Web storage API(本地存储和会话存储)或 IndexedDB。 1.

64720

vue中Axios的封装和API接口的管理

例如上面的思想:如果后台返回的状态码是200,则正常返回数据,否则的根据错误的状态码类型进行一些我们需要的错误,其实这里主要就是进行了错误的统一处理和没登录或登录过期后调整登录页的一个操作。...get函数返回一个promise对象,当axios其请求成功时resolve服务器返回 值,请求失败时reject错误值。最后通过export抛出get函数。...考虑接口会有多个不同域名的情况,所以准备通过js变量来控制接口域名。这点具体在api里会介绍。 3.增加了请求超时,即断网状态的处理。...后者优先于前者。 3.restful风格的接口,也可以通过这种方式灵活的设置api接口地址。 最后,为了方便api的调用,我们需要将其挂载到vue的原型上。...$api = api; // api挂载到vue的原型上 然后我们可以在页面中这样调用接口,eg: methods: { onLoad(id) { this

3.5K11

计算机网络的常见面试题

GET 和 POST 的区别 作用 GET用来获取资源,POST用于传输实体主体 参数位置 GET的参数放在URL中,POST参数存储在实体主体中,并且GET方法提交的请求的URL中的数据多是...2048字节,POST请求没有大小限制 安全性 GET方法因为参数放在URL中,安全性相对于POST较差一些 幂等性 GET方法是具有幂等性的,而POST方法不具有幂等性。...传输实体主体 PUT 上传文件 DELETE 删除文件 HEAD 和GET方法类似,但只返回报文首部,不返回报文实体主体部分 PATCH 对资源进行部分修改 OPTIONS 查询指定的URL支持的方法...3.服务端证书发给客服端。 4.客服端利用数字认证机构的公钥,向数字证书认证机构验证公钥证书上的数字签名,确认服务器公开密钥的真实性。...403 Forbidden:服务器理解用户的请求,但是拒绝执行该请求 404 Not Found:服务器无法根据客户端的请求找到资源。

28030

RESTful API设计--指南

亚马逊是如何有效地使用 api 进行通信的最佳例子。 在这篇文章中,我讨论如何更好地设计 RESTful api 以避免常见错误。...使用正确的 HTTP 方法 RESTful API 有各种方法来指示我们将使用此 API 执行的操作类型。 GET — 获取资源,请求指定的页面信息,并返回实体主体。...使用参数 有时候,我们需要一个 API,它应该比仅仅通过 id 来讲述更多的故事。在这里,我们应该利用查询参数来设计 API。 /products?...401 UNAUTHORIZED / 403 FORBIDDEN— 如果用户或系统无权执行某项操作,则可以使用此选项。...例如,如果您使用 Facebook graph APIs,如果出现错误,它会返回如下消息: { "error": { "message": "(#803) Some of the aliases

1.8K50

axios详解以及完整封装方法

例如上面的思想:如果后台返回的状态码是200,则正常返回数据,否则的根据错误的状态码类型进行一些我们需要的错误,其实这里主要就是进行了错误的统一处理和没登录或登录过期后调整登录页的一个操作。...get函数返回一个promise对象,当axios其请求成功时resolve服务器返回 值,请求失败时reject错误值。最后通过export抛出get函数。...考虑接口会有多个不同域名的情况,所以准备通过js变量来控制接口域名。这点具体在api里会介绍。 3.增加了请求超时,即断网状态的处理。...后者优先于前者。 3.restful风格的接口,也可以通过这种方式灵活的设置api接口地址。 最后,为了方便api的调用,我们需要将其挂载到vue的原型上。...$api = api; // api挂载到vue的原型上 然后我们可以在页面中这样调用接口,eg: methods: { onLoad(id) { this.

2.4K10
领券