很多API安全问题产生的根源是缺少好的API安全设计,做好API安全设计有利于提升API自身的安全性。这里讲2条设计原则:5A原则和纵深防御原则。

一、5A原则

5A原则由5个首字母为A的单词构成:Authentication(身份认证)、Authorization(授权)、Access Control(访问控制)、Auditable(可审计性)和Asset Protection(资产保护)。在做安全设计时,需要从这5个方面考虑安全设计的合理性,如果某一方面缺失,则安全设计是不全面的。

  • 身份认证:身份认证解决“你是谁”的问题,通过身份认证明确是谁在与API服务进行通信,API服务是否允许它的请求。
  • 授权:授权通常发生在身份认证之后,解决“你能访问什么”的问题。授权指赋予某个客户端调用某些API的权限。
  • 访问控制:访问控制通常发生在授权之后,是指对授权的客户端访问时正确性的检验。即使某个角色的权限设置正确,但访问控制错误,则会出现越权问题。
  • 可审计性:记录接口调用的关键信息,以便通过审计手段及时发现问题,并在发生问题后通过审计日志溯源,找到问题的发生点。
  • 资产保护:这里包括两方面,一方面是对API自身的保护,如限速、限流、防止恶意调用等;另一方面指对API传输的数据的保护,如数据中的敏感信息(账户、电话、身份证号等)。

二、纵深防御原则

“纵深防御”一词来源于军事术语,指在前后方之间构建多道防线以达到整体防御的目的。在网络安全领域,纵深防御指不能只依赖单一的安全机制,要建立多种安全机制相互支撑以达到安全防御的目的。通过生活中的一个例子来理解纵深防御:为了保障小区居民家中资产的安全,小区门卫是第一道防线。如果门卫被欺骗了,则楼道口的防盗门是第二道防线。若楼道口的防盗门也被破解了,则住房的防盗门是第三道防线。这三道防线之间的防护就构成了纵深防御。

在API安全设计中,可以通过在不同层面使用不同的安全技术达到纵深防御的目的。比如根据API业务属性的不同,划分为公共型API和私有型API。再根据粒度粗细、业务需求、权限划分等采用不同的身份认证和授权技术。

三、总结

5A原则强调的是每一层安全架构设计的合理性,是横向的安全防护;纵深防御是对同一问题从不同层次、不同角度做安全防护,是纵向的安全防护。两种原则相结合将构成一个有机的安全防护整体。

API安全(二):API安全设计原则相关推荐

  1. App项目实战之路(二):API篇

    原创文章,转载请注明:转载自Keegan小钢 并标明原文链接:http://keeganlee.me/post/practice/20160812 微信订阅号:keeganlee_me 写于2016- ...

  2. IOS7使用原生API进行二维码和条形码的扫描

    使用IOS7原生API进行二维码条形码的扫描 IOS7之前,开发者进行扫码编程时,一般会借助第三方库.常用的是ZBarSDK,IOS7之后,系统的AVMetadataObject类中,为我们提供了解析 ...

  3. 深入浅出 Javascript API(二)--地图显示与基本操作 转

    深入浅出 Javascript API(二)--地图显示与基本操作 地图显示与基本操作(放大.缩小.移动.坐标显示)是JavascriptAPI的基本功能,也是一个WebGIS应用的基本内容,Java ...

  4. Android无线测试之—UiAutomator UiObject API介绍二

    点击与长按 一.组件区域位置关系 Rect 对象代表一个矩形区域 [Left,Top] [Right,Bottom] 二.点击与长按API 返回值 API 描述 boolean click() 点击对 ...

  5. js一维数组,api,二维数组

    1.定义数组 空数组 1.数组字面量:[ ] var 变量名 = [ ]://定义一个空的数组把数组保存到变量中 2.新的数组对象 var 变量名 = new Array()://定义一个新的数组对象 ...

  6. [SW]SolidWorks API SDK二次开发学习心得01--开发方式

    SolidWorks二次开发之前,我们先来了解下SolidWorks二次开发有哪些方式 1.宏:在SolidWorks中录制宏,方便制图 2.API SDK: ATL Addin:直接嵌入SolidW ...

  7. xna api大全(二)

    指针参数 许多 Windows API 函数将指针作为它们的一个或多个参数.指针增加了封送数据的复杂性,因为它们增加了一个间接层.如果没有指针,您可以通过值在线程堆栈中传递数据.有了指针,则可以通过引 ...

  8. 项目 - Web地图开发【高德地图API】(二)

    导航兔: Web地图开发 [高德地图API] 导航地址 Web地图开发[高德地图API](一) https://qianmoer.blog.csdn.net/article/details/12842 ...

  9. TensorFlow 官方API 中文版(二)

    TensorFlow 官方API 中文版(二) 7/19/2016 6:55:43 AM 1.1.1 class tf.Graph(续) tf.Graph.devide(device_name_or_ ...

  10. php api获取二维码、组合生成图片

    public function test() {$template = ROOT_PATH . "public/uploads/back.png";$x = "70&qu ...

最新文章

  1. 清华张学工团队入选“人类细胞图谱计划”首批项目
  2. 新安装和已安装nginx如何添加未编译安装模块/补丁
  3. Android之用java的socket写服务器提示java.net.BindException: Address already in use
  4. GoogLeNet——CNN经典网络模型详解(pytorch实现)
  5. HQL (五) 外置命名查询(sql语句单独保存起来)
  6. 提升代码格调——JavaScript 数组的 reduce() 方法入门
  7. phpboot使用mysql_PHP MySQL 插入数据
  8. 2ASK调制解调实验
  9. java下载不了_教大家电脑java安装不了怎么办
  10. 神州数码无线配置命令
  11. Linux (三剑客之二) sed字符串替换命令详解
  12. linux电子数码相册实验报告,电子相册实训报告.docx
  13. php socket http,php 利用socket发送HTTP请求
  14. 运营经验|怎么把app运营好
  15. xshell进入管理员模式
  16. 罗德里格斯旋转公式(Rodrigues‘ rotation formula)推导
  17. IntelliJ IDEA 2018.3 x64 安装激活教程(全面)
  18. 记录一下http发起请求XHR状态显示(错误:已阻止)的原因
  19. Aseprite常用快捷键大全
  20. 听杰伦新歌发现QQ音乐元宇宙,权游角色关系可视化地图、VNote 工具(Typora:勿cue谢谢)、最新论文 | ShowMeAI资讯日报

热门文章

  1. 如何提高项目交付效率
  2. pthon爬虫笔记--名著小说网
  3. 微博android升级7.000,华为 Android 7.0 升级计划曝光:G9 青春版 /Nova 也有份
  4. 年会必备:18套年会快闪PPT
  5. 【矩阵论】矩阵的相似标准型(3)
  6. 酷派android最新版本,酷派手机怎么升级系统 酷派手机系统升级操作方法介绍
  7. AWS Key Management Service(KMS)
  8. CAD导入卫星地图几种方式
  9. Mixly 数码管时钟
  10. 通用的web系统数据导出功能设计实现(导出excel2003/2007 word pdf zip等)