`

rest_api的安全设计

    博客分类:
  • RUBY
阅读更多
1、首先得考虑版本的设置,以便后续版本升级:

CREATIVE_URL="http://www.test.com/api/v1/creative/update"

使用post请求。

2、为用户调用提供唯一SALE验证:

SALT = "43545hhd11778916117435e49b1c31"

3、对SALT+body内容加密安全验证

sig = Digest::SHA1.hexdigest(SALT+"#{http_body_data.to_json}")

4、加上时间请求超时验证

The unix timestamp of current time;例如:确保服务器所在地时间和服务请求所在时间差值不大于10

5、添加每次请求唯一性验证

每次post请求时要求传送一个唯一随机字段。

等等。。。。

另外引用一下api设置原则:

API 的设计原则:转载

1.        用户导向的API(Application Programming Interface) 设计
API设计和UI设计实际上是一回事情,只是不同的用户对象而已。实际上他们做的是同一件事情,都是告诉机器,你应该给我做什么事情。API永远不是为自己设计的,设计API的时候,首先应该考虑的问题是,我这个API是给谁做?他们的背景是什么?他们会怎么用?要根据他们不同的需求去设计,要想清楚你究竟是为谁在做。

2.        封装(Encapsulation), 困难留给自己,方便留给用户
API是为了解决一个或一类问题,或提供一个或一类服务。其背后一定有一个或多个实现。设计API必须保证问题得到正确解决,服务得到合适提供。不能因为实现的困难,而改变API的设计,让使用者来承担困难,解决困难。困难解决得越多,API的价值越大。一个好的API,就是要把困难留给自己,方便留给用户。就是要让客户用起来方便,不需要再去解决这些问题,这是API最大的价值。

3.  简单懂易, self explain
好的API是简单易用的,好的API时不宜让用户犯错的。每个名字,每个签名都要做到简单易懂,不能模棱两可,更不能挂羊头卖狗肉。每个名字和签名不要用缩写,即使这些缩写是我们熟悉的行业标准,要想到可能用户并不熟悉我们的行业,新员工也会有学习成本,而我们仅仅是少打几个字而已。从小处做起。

4. 不可枚举,必须抽象
API是为了解决一个或一类问题,或提供一个或一类服务。对于同一类问题,不同的应用,不同的客户需求会有不同,问题的表现也可能不同。API不能因为这些不同,来枚举这些不同,一一解决,这是永远加不完的。 必需看到问题的本质,抽象解决,统一解决。

5. 服务分类, 各司其职,包得愈紧愈好,知道愈少愈好
形象的讲,在家里,该放到厨房的东西,放到厨房;该放到卧房的东西,放到卧房;该放到客厅的东西,放到客厅。在家里,你不会把这些东西混着乱放吧。那么,也不要把一个API变成了一个大杂烩。
0
0
分享到:
评论
1 楼 xn792474 2015-02-17  
没看出任何有效的东西

相关推荐

    Python库 | edx_rest_api_client-5.0.1-py3-none-any.whl

    今天我们将深入探讨一个名为`edx_rest_api_client`的Python库,该库的版本为5.0.1,它是一个专门为Python环境设计的REST API客户端,用于与edX在线学习平台进行交互。 `edx_rest_api_client`是Python开发者在处理...

    odoo rest_api

    1. **RESTful架构**:REST API遵循RESTful设计原则,它是一种网络应用程序的设计风格和开发方式,基于HTTP协议,使用URI(Uniform Resource Identifier)来定位资源,通过HTTP方法(GET、POST、PUT、DELETE等)来...

    Baidu_TTS_REST_API_Manual_restapi_帮助文档_tts_baidu_

    **百度语音合成就绪API(REST API)手册** 在当今数字化时代,语音合成技术已经广泛应用于各种场景,如智能助手、在线教育、自动驾驶等。百度作为中国领先的科技公司,提供了强大的语音合成服务,名为“百度语音...

    WordPress_REST_API_主题.zip

    REST API是基于REST架构约束设计的一种网络应用程序接口,它的主要特点包括资源导向、无状态、缓存等。在WordPress中,REST API提供了丰富的端点(endpoints),如文章、评论、用户、分类等,使得开发者可以轻松地...

    REST API 安全设计指南.pdf

    REST API 安全设计指南。REST的全称是REpresentational State Transfer,它利用传统Web特点,提出 提出一个既适于客户端应用又...是一个REST API安全设计的指南,权当抛砖引玉,推荐网站后台设计及网站架构师们阅读。

    HTTP-API_restAPI_iot_httpapi_iiot_agneyaslabs_

    HTTP-API_restAPI_iot_httpapi_iiot_agneyaslabs_ 这个主题涉及的是使用HTTP RESTful API来与Avarana IoT平台交互的技术细节,该平台由Agneyas Labs开发。REST(Representational State Transfer)是一种网络应用...

    FinTech1-Rest-API_restapi_django_

    在这个背景下,“FinTech1-Rest-API_restapi_django_”项目显然是一个利用Django框架构建的RESTful API,用于处理金融科技相关的业务逻辑。REST(Representational State Transfer)是一种网络应用程序的设计风格和...

    nav_rest_api

    【nav_rest_api】是一个专为自动驾驶车辆设计的ROS(Robot Operating System)RESTful API,它提供了通过JavaScript语言来实现对车辆的远程控制和状态查询的能力。REST(Representational State Transfer)是一种...

    REST_API_LOGIN

    RESTful API设计是一种广泛应用于Web服务接口的标准,它基于HTTP协议,强调资源的表述状态转移。在"REST_API_LOGIN"这个主题中,我们主要探讨如何使用JavaScript来实现REST API的登录功能。 首先,理解REST的基本...

    ASP.NET_MVC_4_and_the_Web_API_-_Building_a_REST_Service_from_Start_to_Finish.pdf

    第三章讨论了一个具体的 REST API 设计案例。设计 REST API 需要考虑以下几个关键因素: - **资源定义**:明确服务提供的核心资源及其表示形式。 - **HTTP 方法映射**:合理分配 HTTP 方法(GET、POST、PUT、DELETE...

    soget_rest_api_server:Soget REST API服务器

    在IT行业中,"Soget REST API服务器"可能是一个基于RESTful架构设计的Web服务,主要用于提供与Soget相关的业务功能。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议...

    Python库 | ultracart_rest_sdk-3.6.16-py3-none-any.whl

    - **认证**:库支持OAuth 2.0认证,确保安全地访问UltraCart API。 - **错误处理**:对API响应的错误进行了封装,方便开发者处理异常情况。 - **异步支持**:部分API调用可以异步执行,提高程序性能。 - **数据模型*...

    RESTFUL_API_设计开发

    Jersey是Java平台上的一个开源框架,专门用于实现RESTful API,它提供了全面的工具和支持,使得开发者能够快速构建高效、灵活的REST服务。 在RESTful API的设计中,有以下几个关键知识点: 1. **URI(统一资源...

    django_rest_api:Django REST API [William_S._Vincent] _Django_for_APIs__Build_Web_API

    5. **认证与授权**:学习使用Django REST framework的认证和权限管理机制,如Token Authentication、Session Authentication等,确保API的安全性。 6. **序列化器**:掌握如何自定义序列化器以控制数据的序列化和反...

    H3C CAS REST API接口

    H3C CAS的REST API设计简洁,易于理解和使用,使得开发者可以使用常见的编程语言如Python、Java、JavaScript等来调用这些接口,实现自动化管理任务。 在使用H3C CAS REST API时,首先需要了解API的基本结构和请求...

    REST_API_EJS

    这个"REST_API_EJS"项目提供了实践RESTful API设计与EJS模板引擎结合的实例,有助于开发者更好地理解和掌握这两种技术在实际项目中的应用。通过深入学习和实践,可以提升Web服务开发的专业技能。

    REST_API_APP

    "REST_API_APP"很可能是一个项目或教程,它教你如何使用Python来设计、实现和测试RESTful API。Python因其简洁的语法和丰富的库支持而被广泛用于API开发。以下是对这个主题的详细讲解: 1. **REST原则**:REST是一...

    profiles_rest_API

    标题中的"profiles_rest_API"指的是一个与用户配置文件相关的RESTful API,可能是一个用Python语言开发的服务,用于处理用户资料的创建、读取、更新和删除等操作。REST(Representational State Transfer)是一种...

    single_REST_API

    REST API 设计的核心原则是通过统一的接口来操作网络上的资源,使得客户端和服务器之间的交互变得简单而高效。在这个名为“single_REST_API”的项目中,我们将探讨如何设计和实现一个针对单一资源的RESTful API,它...

Global site tag (gtag.js) - Google Analytics