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>
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。