好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>CMS系统>Dedecms
<tfoot draggable='sEl'></tfoot>

关于phpjwttoken的信息

很多站长朋友们都不太清楚phpjwttoken,今天小编就来给大家整理phpjwttoken,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php中的token怎么用 2、 JWT-token—前后端分离架构的api安全问题 3、 php token 是什么东西,有什么作用,具体要怎么实现? 希望配合代码解释 php中的token怎么用

token用的地方还是很多,比如登录,提交数据等等 ,这里举个例子吧。

/* 

* PHP简单利用token防止表单重复提交 

* 此处理方法纯粹是为了给初学者参考 

*/  

session_start();  

function set_token()  

{  

 $_SESSION['token'] = md5(microtime(true));  

}  

function valid_token()  

{  

 $return = $_REQUEST['token'] === $_SESSION['token'] ? true : false;  

 set_token();  

 return $return;  

}  

//如果token为空则生成一个token  

if( !isset($_SESSION['token'] )  

 || $_SESSION['token'] == '' )  

{  

 set_token();  

}  

  

if(isset($_POST['test'])){  

 if(!valid_token()){  

  echo "token error";  

 }else{  

  echo time();  

 }  

}  

?>  

<form method=post action="">  

 <input type="hidden" name="token" value="<?=$_SESSION['token']?>">  

 <input type="text" name="test" value="value">  

 <input type="submit">  

</form>

JWT-token—前后端分离架构的api安全问题

前后端分离架构带来的好处一搜一大堆,我们来看一下分离后后端接口的安全问题。

前后端分离架构现状:

这样的情况后端api是暴露在外网中,因为常规的web项目无论如何前端都是要通过公网访问到后台api的,带来的隐患也有很多。

1.接口公开,谁都可以访问

2.数据请求的参数在传输过程被篡改

3.接口被重复调用

...

session和cookie都是客户端与服务端通讯需要提供的认证,当客户端的值和服务器的值吻合时,才允许请求api,解决了第1个问题,但是当攻击者获取到了传输过程中的session或者cookie值后,就可以进行第2、3种攻击了

JWT标准的token包含三部分:

头部用于描述关于该JWT的最基本的信息,例如其类型以及签名所用的算法等

将上面的JSON对象进行 [base64编码] 可以得到下面的字符串。这个字符串我们将它称作JWT的Header

Payload也是一个JSON对象。包含了一些其他的信息

这里面的前五个字段都是由JWT的标准所定义的。

将上面的JSON对象进行 [base64编码] 可以得到下面的字符串。这个字符串我们将它称作JWT的Payload

将上面的两个编码后的字符串都用句号 . 连接在一起(头部在前),就形成了

最后,我们将上面拼接完的字符串用 HS256算法 进行加密。在加密的时候,我们还需要提供一个 密钥(secret) 。如果我们用 mystar 作为密钥的话,那么就可以得到我们加密后的内容

这一部分叫做 签名

最后将这一部分签名也拼接在被签名的字符串后面,我们就得到了完整的JWT

签名解决了数据传输过程中参数被篡改的风险

一般而言,加密算法对于不同的输入产生的输出总是不一样的,如果有人 对Header以及Payload的内容解码之后进行修改,再进行编码的话,那么新的头部和载荷的签名和之前的签名就将是不一样的。 而且,如果不知道服务器加密的时候用的密钥的话,得出来的签名也一定会是不一样的。

解决了篡改数据的问题,还有第3个问题,那就是攻击者不修改数据,只是重复攻击

比如在浏览器端通过用户名/密码验证获得签名的Token被木马窃取。即使用户登出了系统,黑客还是可以利用窃取的Token模拟正常请求,而服务器端对此完全不知道, 因为JWT机制是无状态的。

可以在Payload里增加时间戳并且前后端都参与来解决:

php token 是什么东西,有什么作用,具体要怎么实现? 希望配合代码解释

token可以用来作登陆验证的。比如做微信公众号开发,一般他们会在用户使用微信登陆的时候,生成一个唯一的token,来标记这个用户登陆的状态。这个token是生成的唯一标识,所以里面不携带用户的信息。这样就降低用户用户名密码的被窃取的风险性。实现你可以根据用户的id以及固定的字符串加上时间戳来生成,像存用户名密码一样存起来,你也可以给这个token设置一个过期时间,到期重新生成一个token。

关于phpjwttoken的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于关于phpjwttoken的信息的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did167417
更新时间:2023-03-28   阅读:43次

上一篇: php判断包含字符 php判断包含字符编码

下一篇:php+小说源码 小说源码php分享

最新资料更新

  • 1.dedecms实现将表单订单发送到邮箱实例代码
  • 2.dedecms三级栏目调用方法
  • 3.织梦dede所有实用标签调用方法搜集整理
  • 4.织梦建站访问首页时后面都会添加上index.html该如何去掉
  • 5.批量删除织梦dedecms文档搜索关键词的方法
  • 6.解决Dedecms生成RSS地图地址出错全都多了一个网址的问题
  • 7.Dedecms网站地图获取文章列表支持标签调用的方法
  • 8.dedecms文章评论功能用法分析
  • 9.dedecms 5.7 实现点击图片到下一页
  • 10.详解DeDeCMS织梦手机版网站首页如何更新
  • 11.dedecms 取消栏目列表页文章标题设置推荐后的加粗
  • 12.DEDECMS实现在标签中嵌套调用SQL的方法
  • 13.DedeCms autoindex和itemindex使用介绍
  • 14.DEDE列表调用有缩图显示缩图,无缩图则不显示缩图的方法
  • 15.开源织梦(dedecms)快速搬家图文教程
  • 16.dedecms友情链接中去掉织梦链投放修改方法
  • 17.Dedecms自定义模型解决会员无法投稿的方法
  • 18.织梦在导航栏下拉菜单中调用当前栏目子类的方法
  • 19.详解织梦模板DEDECMS核心类TypeLink.class.php功能分析
  • 20.dedecms自定义内容模型在首页、列表页及内容调用标签的方法

CopyRight:2016-{hedonghua:year}{hedonghua:sitegs} 备案ICP:湘ICP备09009000号-16 {hedonghua:sitejym}
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2026 「好得很程序员自学网」
[ SiteMap ]