php如何验证token

(*-*)浩
(*-*)浩asal
2019-09-19 11:27:146366semak imbas

Token,就是令牌,最大的特点就是随机性,不可预测。一般黑客或软件无法猜测出来。

php如何验证token那么,Token有什么作用?又是什么原理呢?

Token一般用在两个地方——防止表单重复提交、anti csrf攻击(跨站点请求伪造)。

生成一个请求url(推荐学习:PHP编程从入门到精通

<?php
$key = &#39;key&#39;; //秘钥 ,非常重要,不参与url传输、秘钥泄露将导致token验证失效
$data[&#39;time&#39;] = time();
$data[&#39;data&#39;] = &#39;data&#39;;
$data[&#39;token&#39;]= md5( md5($key) . md5($data[&#39;time&#39;]) );
// 拼接url
$url = &#39;domain.com/api.php?&#39; . http_build_query($data);

服务器端验证token

<?php
$param = $_GET;
// 验证时间戳
if (!isset($param[&#39;time&#39;]) || intval($param[&#39;time&#39;]) <= 1) {
    exit(&#39;时间戳不正确&#39;);
}
// 设置每个token的过期时间为60秒
if (time() - intval($param[&#39;time&#39;]) > 60) {
    exit(&#39;请求超时&#39;);
}
// 验证token

// 服務器端生成token
$key = &#39;key&#39;; //秘钥
$time = time();
$server_token= md5( md5($key) . md5($param[&#39;time&#39;]) );;
if ($server_token !== $param[&#39;token&#39;]) {
    exit(&#39;token错误&#39;);
}

echo &#39;验证通过&#39;;
// 其他业务逻辑
// ...

Atas ialah kandungan terperinci php如何验证token. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:php如何引用外部文件Artikel seterusnya:php如何统计数组中重复的值

Artikel berkaitan

Lihat lagi