一、简介

REST(Representational State Transfer,具体状态转移),是一种基于HTTP协议、URI(统一资源定位符)、JSON和XML这些现有协议与标准的,针对网络应用的设计和开发方式。

资源 + HTTP动作

系统中所有对象都被抽象为资源,资源通过URI指向。

对于资源的具体类型由HTTP协议的各种动作实现。

二、接口验证

为保证API接口的安全性,需要设计一套严格的接口验证方法,常包含以下几种:

  • 接口时效性验证,即接口uri是否过期。时间戳超时机制是防御DOS攻击的有效手段。
  • 接口参数完整性验证,即定义接口签名,客户端把所有的请求参数根据一个特定的算法,生成一个签名字符串,并在请求时一并发送。服务器接收到后进行验证。如果不一样,说明参数被更改过。签名机制保证了数据不会被篡改。
  • 用户唯一Token。

在以上三中机制的保护下:

如果有人劫持了请求,并对请求中的参数进行了修改,签名就无法通过;

如果有人使用已经劫持的URL进行DOS攻击,服务器则会因为缓存服务器中已经存在签名或时间戳超时而拒绝服务,所以DOS攻击也是不可能的;

如果签名算法和用户名密码都暴露了,洗洗睡吧。。。

Restful API及接口安全的更多相关文章

  1. yii2 restful api——app接口编程实例

    <?php namespace common\components; use common\models\Cart; use common\models\User; use Yii; use y ...

  2. yii2 restful api --app接口编程

    转 http://www.yiichina.com/tutorial/1143yii2中restful url访问配置, 登陆接口access-token验证类 [ 2.0 版本 ] 登陆接口acce ...

  3. RESTful API格式 图片验证码接口

    之前公司写图片验证码时用的是session 后来写接口时也想用session存验证码  不过领导说RESTful API 写接口 没有session这一说 于是就用了redis 存验证码 还有就是接口 ...

  4. 一个Restful Api的访问控制方法

    最近在做的两个项目,都需要使用Restful Api,接口的安全性和访问控制便成为一个问题,看了一下别家的API访问控制办法. 新浪的API访问控制使用的是AccessToken,有两种方式来使用该A ...

  5. nova创建虚拟机源码分析系列之一 restful api

    开始学习openstack源码,源码文件多,分支不少.按照学习的方法走通一条线是最好的,而网上推荐的最多的就是nova创建虚机的过程.从这一条线入手,能够贯穿openstack核心服务.写博文仅做学习 ...

  6. Spring Boot实战:Restful API的构建

    上一篇文章讲解了通过Spring boot与JdbcTemplate.JPA和MyBatis的集成,实现对数据库的访问.今天主要给大家分享一下如何通过Spring boot向前端返回数据. 在现在的开 ...

  7. SpringBoot使用Swagger2实现Restful API

    很多时候,我们需要创建一个接口项目用来数据调转,其中不包含任何业务逻辑,比如我们公司.这时我们就需要实现一个具有Restful API的接口项目. 本文介绍springboot使用swagger2实现 ...

  8. REST与RESTFul API最佳实践

    我经常会面试一些做PHP的开发者,让我很奇怪的是,10个人总有8个多不知道什么是REST服务,甚至是没有听说过.但RESTFul API已经是现在互联网里对外开放接口的主流模式,可参考: 豆瓣API  ...

  9. 转:一个Restful Api的访问控制方法(简单版)

    最近在做的两个项目,都需要使用Restful Api,接口的安全性和访问控制便成为一个问题,看了一下别家的API访问控制办法. 新浪的API访问控制使用的是AccessToken,有两种方式来使用该A ...

随机推荐

  1. Oracle_11g_x64的安装与完全卸载

    安装: https://jingyan.baidu.com/article/363872eccfb9266e4aa16f5d.html 完全卸载: https://blog.csdn.net/m0_3 ...

  2. 我的 Python 编码规范

    python 文件的组成 为了便于描述,先上一个 demo #!/usr/bin/env python # -*- coding: utf-8 -*- """通常这里是关 ...

  3. Halcon blob分析基本处理步骤

    Halcon,blob分析 应用场景,二值化后的灰度图像对比度清晰 基本处理流程 1 读取图片 read_image(变量名,'路径') //halcon字符串使用单引号'' 2 预处理 2.1 RO ...

  4. linu后台执行py文件和关闭的后台py文件

    后台执行py nohup python xxx.py 关闭后台执行py 查看进程pid ps -aux|grep main.py 根据pid关闭关闭进程 kill -9 (pid)

  5. 第三方控件引起的"类型Universe无法解析程序集"的血案

    前一阵子在项目中添加了IrisSkin2皮肤控件,今天用VS打开悲剧了. 提示"类型Universe无法解析程序集:System.Design,Version=2.0.0.0,Culture ...

  6. 免费的私人代码托管(bitbucket) 和 常用git指令

    转自 http://blog.csdn.net/nzing/article/details/24452475 今天想找个免费的私人代码托管平台,github,googlecode, SourceFor ...

  7. 虚拟机下修改ip配置

    // centos ip 配置vim /etc/sysconfig/network-scripts/ifcfg-eth0 // 虚拟机下删除里面的内容vim /etc/udev/rules.d/70- ...

  8. LockSupport源码分析

    LockSupport提供park()和unpark()方法实现线程阻塞和唤醒.底层实现是通过sun.misc.Unsafe的park和unpark. 关于sun.misc.Unsafe的说明请参见我 ...

  9. solve License Key is legacy format when use ACTIVATION_CODE activate jetbrains-product 2019.3.1

    1.the java-agent and ACTIVATION_CODE can get from this site:https://zhile.io/2018/08/25/jetbrains-li ...

  10. Nessus忘记用户名和密码

    以管理员身份运行cmd,切换到Nessus的安装目录,执行以下操作.