接口

基于JWE的API接口加密方案设计

前言

在这个互联网和移动互联网高速发展的时代,数据安全成了企业的头等大事。数据安全的范畴很大,包含:技术安全、服务安全、存储安全、传输安全等,本文主要是从传输安全的层面,设计一种基于JWE的API加密方案。

名词说明

**JWE **

JSON Web Encryption ,详细资料:http://self-issued.info/docs/draft-ietf-jose-json-web-encryption.html

目录

(一) 安全算法扫盲

(二) 安全方案演变

(三) JWE的介绍

(四) 基于JWE的API加密方案

本文主要讲解相关理论,后续会有实践的更新


(一) 安全算法扫盲

1.信息安全算法

1.1 加密相关算法

现代密码学中,把算法的加密技术主要分为:

单密钥模式

双密钥模式

无密钥模式

单密钥模式,也称为对称密钥模式,加密和解密方采用同一个密钥。采用这种模式的算法就叫做对称加密算法。

双密钥模式,也称作非对称密钥模式,加密和解密方采用不同的密钥。采用这种模式的算法就叫做非对称加密算法。

无密钥模式,也称作随机密钥模式,每次的密钥都是随机生成,使用一次之后失效。这是一种理想的加密模式,由于设计难度大,目前未得到广泛应用。

本文中主要针对前两类加密算法进行简单介绍。

1.1.1 对称加密算法(Symmetric Encryption)

对称加密算法,又称私钥加密算法,顾名思义加密和解密过程中只用到一个密钥,该密钥也称作私钥。

常见的对称加密算法有:DES、IDEA(基于DES)、3DES(基于DES)、RC4、RC5、RC6、AES。

特点

Feature

关于 php json API接口开发的注意问题

关于 php json接口开发的注意问题

一是注意跨域问题.需要加 Access-Control-Allow-Origin:*  http头.(针对于前端浏览器脚本调用接口)

二是如果请求的header里  Content-Type: 是 application/json,则需要用 file_get_contents(“php://input”);接收.如果用 swoole 框架的话,需要用$request->rawContent()接收.

如果请求header里Contente-Type是 multipart/form-data,或application/x-www-form-urlencoded或application/octet-stream
则需要用 $_POST($_GET)或$_FILES来接收.

Ps :js 代码调用接口示例如下

1.要加contentType: “application/json; charset=utf-8”,

2.需要使用JSON.stringify 转换json对象或把对象转为字符形式,如'{“aa”:22}'(json两边加单引号)

var submit_sync = function() {  
    $.ajax({  
        type: "post",  
        url: 'add-post-json.php',  
        async: false, // 使用同步方式  
        

写一个接口应该考虑哪些内容?

我觉得写一个接口应该考虑如下的内容:

  1. 确定 url:是否符合 Restful,是否要符合公司确定的规范?
  2. 确认操作人的权限
  3. 确定要操作的资源的权限
  4. 验证传入的参数:不要相信外面传进来的任何数据
  5. 操作失败的提示
  6. 操作成功的提示
  7. 写文档:如何按规矩写好文档是一件值得花时间和精力梳理的事情
  8. 如何测试接口,用什么数据测试