入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

PHP使用Token

创建时间:2017-02-06 投稿人: 浏览次数:1657

什么是Token

Token 中文翻译为令牌,一般用来防止表单重复提交,csrf跨站请求伪造。 保证web安全。
Token原理: 服务端会先创建一个Token,保存在session中,客户端中添加<input type="hidden" name="token" value="<?php $_SESSION["token"]?>"/>,提交表单时,服务端会获取token的值,如果值和session设置的值不同,表明重复提交或者为csrf攻击。

例子

<?php
session_start();
function setToken() {
    $_SESSION["token"] = md5(microtime());
}

function validToken() {
    $return = ($_REQUEST["token"] === $_SESSION["token"] ? true : false);
    setToken();
    return $return;
}

if(!isset($_SESSION["token"]) || $_SESSION["token"] == "") {
    setToken();
}

if(isset($_POST["text"])) {
    if(validToken()) {
        echo time();
    } else {
        echo "error";
    }
}
?>

<html>
<body>
    <form action="" method="post">
        <input type="hidden" name="token" value="<?php $_SESSION["token"]?>"/>
        <input type="text" name="text" value="val"/>
        <input type="submit" value="submit"/>
    </form>
</body>
</html>
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。