PHP接口开发常规加密办法
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:
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接口开发常规加密办法相关推荐
- api接口加密_谈谈API接口开发中的安全性如何解决
如今各种API接口层出不穷,一个API的好与不好可以从很多方面来考量,其中"安全性"就是一个API接口最基本也是最重要的一个特点.本文就来跟大家聊聊关于API接口开发的安全性问题. ...
- PHP接口开发加密技术实例原理与例子
下面例子简单讲解PHP接口开发加密技术: 如app要请求用户列表,api是"index.php?module=user&action=list" app生成token = ...
- 说说第三方支付接口开发及开发中遇到的坑爹问题
前言 最近在做公司的支付接口,从微信支付到各种第三方的支付接口,还有点卡等支付,微信支付文档相对比较详细,虽然也不少坑,被各路开发人员吐槽,但是填的人多啊,所以是最好开发的,但是公司还有用到一些第三方 ...
- SpringBoot+Vue博客系统---后端接口开发
Java后端接口开发 从零开始搭建一个项目骨架,最好选择合适,熟悉的技术,并且在未来易拓展,适合微服务化体系等.所以一般以Springboot作为我们的框架基础,这是离不开的了. 然后数据层,我们常用 ...
- 基于SpringBoot+Vue开发的前后端分离博客项目-Java后端接口开发
文章目录 1. 前言 2. 新建Springboot项目 3. 整合mybatis plus 第一步:导依赖 第二步:写配置文件 第三步:mapper扫描+分页插件 第四步:代码生成配置 第五步:执行 ...
- 尚医通-OAuth2-微信登录接口开发(三十一)
目录: (1)微信登录-OAuth2介绍 (2)前台用户系统-微信登录-准备工作 (3)微信登录-生成微信二维码-接口开发 (4)微信登录-生成验证码-前端整合 (5)微信登录-获取扫码人信息-实现分 ...
- SpringBoot 接口层统一加密解密
1. 介绍 在我们日常的Java开发中,免不了和其他系统的业务交互,或者微服务之间的接口调用 如果我们想保证数据传输的安全,对接口出参加密,入参解密. 但是不想写重复代码,我们可以提供一个通用star ...
- 第三方支付接口开发及开发中遇到的坑爹问题
前言 最近在做公司的支付接口,从微信支付到各种第三方的支付接口,还有点卡等支付,微信支付文档相对比较详细,虽然也不少坑,被各路开发人员吐槽,但是填的人多啊,所以是最好开发的,但是公司还有用到一些第三方 ...
- 《Web接口开发与自动化测试 -- 基于Python语言》 ---前言
前 言 本书的原型是我整理一份Django学习文档,从事软件测试工作的这六.七年来,一直有整理学习资料的习惯,这种学习理解再输出的方式对我非常受用,博客和文档是我主要的输出形式,这些输出同时也帮 ...
最新文章
- Aspose.words 书签定位
- 中国网速排行榜出炉:上海最快 均速达5.4Mb/s
- Arrays.sort和Collection.sort分别使用什么排序来实现的
- sql必知必会(第四版) 学习笔记一
- 启用SAP GUI FOR HTML
- Google新作:注意力机制是否真的能够提供模型的可解释性?
- go sync.map 源码分析
- linux java文件 core_linux下部署.net core/java
- #6278. 数列分块入门 2
- BP神经网络算法改进
- 输入某班C语言考试成绩,人数未知,用-1作为结束标志,若大于100分,则重新输入,计算全班的最高分、最低分与平均分
- Not annotated parameter overrides @NonNullApi parameter
- Golang学习(十五) 数组排序和二分查找
- 重磅!Waymo首席执行官离职,自动驾驶商业化打上“问号”
- GitChat·DevOps | 如何结合 Scrum 和 Kanban
- 深入认识敏捷开发和面向对象
- 我炒股十几年了,随着股龄的增长,对股市的操作也越来越得心应手。现在,股票年年都能赢利
- 问题 B: 道路建设 (Ver. I)
- 两数相除,如果有余数则结果加一
- 怎么调整计算机的音量,教你电脑声音如何调大
热门文章
- https://www.cnblogs.com/lyhabc/archive/2013/06/12/3133273.html?tdsourcetag=s_pcqq_aiomsg
- 【一本通】1218:取石子游戏(博弈论)
- bzoj4916 神犇和蒟蒻
- 计算机网络的软硬件组成,314 计算机网络的硬件与软件组成.ppt
- 纷享销客数字化营销能力(三):全渠道获客
- dell服务器增加磁盘阵列,Dell PowerEdge服务器如何通过联机容量扩充的方式实现磁盘阵列扩容?...
- 系统及服务器巡检流程图,巡检操作流程图
- python爬取安居客二手房网站数据
- ERP系统 应付分析供应商账龄
- Ubuntu中安装中文语言包