PHP接口开发是PHP常见的技术,能够经过接口进行一些操做,能够访问接口获取数据,给app提供数据接口等,可是若是接口没有加密解密的过程,很容易发生盗用和不安全的操做。php
下面例子简单讲解PHP接口开发加密技术:git
如app要请求用户列表,api是“index.php?module=user&action=list”github
app生成token = md5sum (‘user’.’2012-11-28′.’#$@%!’.list) = 880fed4ca2aabd20ae9a5dd774711de2;api
则实际发起请求为 “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,这种状况则不适用于读取接口数据的应用场景,适合在浏览器中访问接口。cookie
1.请求头里带用户username和password,到服务器端作验证,经过才继续下边业务逻辑。app
优势:防止了服务器端api被随意调用。
缺点:每次都交互用户名和密码,交互量大,且密码明文传输不安全。加密
2.第一次请求,要求username和password,验证经过,种cookie到客户端,app保存cookie值。
每次请求带上cookie。
点评:和pc上浏览器认证的原理同样了。