【发布时间】:2013-05-06 07:15:26
【问题描述】:
我想知道这段代码是否足够强大以防止对 PHP Form 的 CSRF 攻击?
<?php
session_start();
session_regenerate_id(true);
if (isset($_POST['submit'])) {
if (isset($_SESSION['token']) && ($_POST['token'] == $_SESSION['token'])) {
}
}
$token = hash('sha256', uniqid(mt_rand(), true));
$_SESSION['token'] = $token;
?>
//FORM
<form method="POST" action="page.php">
<input type="hidden" name="token" value="<?php echo $token; ?>">
<input type="submit" name="submit">
</form>
谢谢。
【问题讨论】:
-
尝试
openssl_pseudo_random_bytes以获得良好的 CSPRNG(加密安全 RNG)
标签: php forms security token csrf