PHP接口开发是PHP常见的技术,可以通过接口进行一些操作,可以访问接口获取数据,给app提供数据接口等,但是如果接口没有加密解密的过程,很容易发生盗用和不安全的操作。

下面例子简单讲解PHP接口开发加密技术:

如app要请求用户列表,api是“index.php?module=user&action=list”

app生成token = md5sum (‘user’.’2012-11-28′.’#$@%!’.list) = 880fed4ca2aabd20ae9a5dd774711de2;

则实际发起请求为 “index.php?module=user&action=list&token=880fed4ca2aabd20ae9a5dd774711de2”

服务器端接到请求用同样方法计算token:

PHP
1
2
3
4
5
6
7

$module = $_GET['module'];
$action = $_GET['action'];
$token = md5sum($module.date('Y-m-d',time()).'#$@%!*'.$action);
if($token != $_GET['token']){
    alarm('access deny');
    exit();
}

这样就判断了请求url参数是合法的,允许访问。关键是接口token参数的构造。

还有一种方法用到cookie,这种情况则不适用于读取接口数据的应用场景,适合在浏览器中访问接口。

1.请求头里带用户username和password,到服务器端做验证,通过才继续下边业务逻辑。

优点:防止了服务器端api被随意调用。
缺点:每次都交互用户名和密码,交互量大,且密码明文传输不安全。

2.第一次请求,要求username和password,验证通过,种cookie到客户端,app保存cookie值。

每次请求带上cookie。

点评:和pc上浏览器认证的原理一样了。

PHP接口开发常规加密办法相关推荐

  1. api接口加密_谈谈API接口开发中的安全性如何解决

    如今各种API接口层出不穷,一个API的好与不好可以从很多方面来考量,其中"安全性"就是一个API接口最基本也是最重要的一个特点.本文就来跟大家聊聊关于API接口开发的安全性问题. ...

  2. PHP接口开发加密技术实例原理与例子

    下面例子简单讲解PHP接口开发加密技术: 如app要请求用户列表,api是"index.php?module=user&action=list" app生成token = ...

  3. 说说第三方支付接口开发及开发中遇到的坑爹问题

    前言 最近在做公司的支付接口,从微信支付到各种第三方的支付接口,还有点卡等支付,微信支付文档相对比较详细,虽然也不少坑,被各路开发人员吐槽,但是填的人多啊,所以是最好开发的,但是公司还有用到一些第三方 ...

  4. SpringBoot+Vue博客系统---后端接口开发

    Java后端接口开发 从零开始搭建一个项目骨架,最好选择合适,熟悉的技术,并且在未来易拓展,适合微服务化体系等.所以一般以Springboot作为我们的框架基础,这是离不开的了. 然后数据层,我们常用 ...

  5. 基于SpringBoot+Vue开发的前后端分离博客项目-Java后端接口开发

    文章目录 1. 前言 2. 新建Springboot项目 3. 整合mybatis plus 第一步:导依赖 第二步:写配置文件 第三步:mapper扫描+分页插件 第四步:代码生成配置 第五步:执行 ...

  6. 尚医通-OAuth2-微信登录接口开发(三十一)

    目录: (1)微信登录-OAuth2介绍 (2)前台用户系统-微信登录-准备工作 (3)微信登录-生成微信二维码-接口开发 (4)微信登录-生成验证码-前端整合 (5)微信登录-获取扫码人信息-实现分 ...

  7. SpringBoot 接口层统一加密解密

    1. 介绍 在我们日常的Java开发中,免不了和其他系统的业务交互,或者微服务之间的接口调用 如果我们想保证数据传输的安全,对接口出参加密,入参解密. 但是不想写重复代码,我们可以提供一个通用star ...

  8. 第三方支付接口开发及开发中遇到的坑爹问题

    前言 最近在做公司的支付接口,从微信支付到各种第三方的支付接口,还有点卡等支付,微信支付文档相对比较详细,虽然也不少坑,被各路开发人员吐槽,但是填的人多啊,所以是最好开发的,但是公司还有用到一些第三方 ...

  9. 《Web接口开发与自动化测试 -- 基于Python语言》 ---前言

    前    言 本书的原型是我整理一份Django学习文档,从事软件测试工作的这六.七年来,一直有整理学习资料的习惯,这种学习理解再输出的方式对我非常受用,博客和文档是我主要的输出形式,这些输出同时也帮 ...

最新文章

  1. Aspose.words 书签定位
  2. 中国网速排行榜出炉:上海最快 均速达5.4Mb/s
  3. Arrays.sort和Collection.sort分别使用什么排序来实现的
  4. sql必知必会(第四版) 学习笔记一
  5. 启用SAP GUI FOR HTML
  6. Google新作:注意力机制是否真的能够提供模型的可解释性?
  7. go sync.map 源码分析
  8. linux java文件 core_linux下部署.net core/java
  9. #6278. 数列分块入门 2
  10. BP神经网络算法改进
  11. 输入某班C语言考试成绩,人数未知,用-1作为结束标志,若大于100分,则重新输入,计算全班的最高分、最低分与平均分
  12. Not annotated parameter overrides @NonNullApi parameter
  13. Golang学习(十五) 数组排序和二分查找
  14. 重磅!Waymo首席执行官离职,自动驾驶商业化打上“问号”
  15. GitChat·DevOps | 如何结合 Scrum 和 Kanban
  16. 深入认识敏捷开发和面向对象
  17. 我炒股十几年了,随着股龄的增长,对股市的操作也越来越得心应手。现在,股票年年都能赢利
  18. 问题 B: 道路建设 (Ver. I)
  19. 两数相除,如果有余数则结果加一
  20. 怎么调整计算机的音量,教你电脑声音如何调大

热门文章

  1. https://www.cnblogs.com/lyhabc/archive/2013/06/12/3133273.html?tdsourcetag=s_pcqq_aiomsg
  2. 【一本通】1218:取石子游戏(博弈论)
  3. bzoj4916 神犇和蒟蒻
  4. 计算机网络的软硬件组成,314 计算机网络的硬件与软件组成.ppt
  5. 纷享销客数字化营销能力(三):全渠道获客
  6. dell服务器增加磁盘阵列,Dell PowerEdge服务器如何通过联机容量扩充的方式实现磁盘阵列扩容?...
  7. 系统及服务器巡检流程图,巡检操作流程图
  8. python爬取安居客二手房网站数据
  9. ERP系统 应付分析供应商账龄
  10. Ubuntu中安装中文语言包