首页
友链
直播
统计
更多
壁纸
归档
留言
影视
Search
1
南图博客 侵权投诉以及声明
6,870,055 阅读
2
最火QQ爆粉神器工具(不频繁加好友)
40,337 阅读
3
彩虹代刷源码v6.1.5破解免授权版
39,638 阅读
4
个人导航页美化版源码1.1版 带后台版
35,607 阅读
5
swapidc对接任意易支付插件(附教程)
30,445 阅读
技术教程
代刷教程
经验共享
建站源码
程序模板
Emlog
WordPress
Typecho
其他模板
工具软件
网络异闻
影视推荐
杂七杂八
热点新闻
人间败类
游戏推荐
我的藏货
歌曲分享
壁纸图片
视频保存
登录
/
注册
Search
标签搜索
HTML
破解版
安卓
动作
单人
影视
WordPress
免费
开放世界
工具
小说
模拟
绿化版
第一人称
源码
3A大作
引导页
氛围
多人
emlog模板
南图
累计撰写
1,522
篇文章
累计收到
5,141
条评论
首页
栏目
技术教程
代刷教程
经验共享
建站源码
程序模板
Emlog
WordPress
Typecho
其他模板
工具软件
网络异闻
影视推荐
杂七杂八
热点新闻
人间败类
游戏推荐
我的藏货
歌曲分享
壁纸图片
视频保存
页面
友链
直播
统计
壁纸
归档
留言
影视
搜索到
1
篇与
的结果
2020-04-06
开放式 api 简单安全验证案例
前言:前后端分离的项目,api 难免会暴露,特别是不需要登陆的开放式 api。为防止 api 被他人盗用,在前端请求参数中添加 token,后端进行对比验证是简单有效的方法。思路:前端 ajax 请求时,带上时间戳参数 timestamp 和由 时间戳 + 唯一字符串 (secret) 通过约定算法生成的参数 token,后端拿到 timestamp 参数后,使用和前端相同的算法计算出 token,并与前端传过来的 token 对比,相同则通过验证。当然为防止盗用者使用抓取的 timestamp 和 token 重复提交,需要对比客户端和服务器的时间戳是否超时。代码:前端(JavaScript):<script src="https://ku.oioweb.cn/js/md5.js"></script> $.ajax({ url: "/api.php", headers: { timestamp: (new Date().getTime() + '').substr(0, 10), token: createToken() } }).success((res) => { console.log(res) }) function createToken() { var timestamp = (new Date().getTime() + '').substr(0, 10); var secret = "123"; return hex_md5(timestamp + secret); }后端(PHP):<?php header("Access-Control-Allow-Origin:*"); if (tokenCheck()!==1) { $json['status']=0; $json['data']='token error!'; }else{ $json['status']=1; $json['data']='token ok!'; //main code ... } echo json_encode($json); function tokenCheck(){ $timestamp=isset($_SERVER['HTTP_TIMESTAMP'])?$_SERVER['HTTP_TIMESTAMP']:""; $token=isset($_SERVER['HTTP_TOKEN'])?$_SERVER['HTTP_TOKEN']:""; $diff =time()-$timestamp; return (($diff>30) || ($token!==createToken($timestamp))) ? 0 : 1; } function createToken($time){ $secret="123"; return md5($time.$secret); }提醒:前端生成 token 的算法 createToken() 尽量保密,可以使用 js 加密工具。API 使用第三方滑动验证的也可以。
2020年04月06日
97 阅读
0 评论
0 点赞