PHP使用Token

什么是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>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值