微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在使用php的登录系统中使用随机数以避免重播攻击?

我已经使用PHP创建了一个登录注册系统.我打算使用随机数来防止重播攻击.到目前为止,我所拥有的是,使用(uniqid(mt_rand(),true))生成一个随机数;然后将其存储在数据库中,并将相同的数据在隐藏字段中传递给客户端,然后在单击登录按钮时将其发送回服务器端.如果它与数据库中的on匹配,则将用户重定向到私有页面,然后在数据库生成并更新一个新的现时值.

这就是我打算实现的方式.但是我对执行情况不太确定.

解决方法:

<?PHP
session_start();
//Check nonce against session
if(isset($_POST) && $_POST["nonce"] === $_SESSION["csrf"]){
    //save data
    //redirect
}
//generate new nonce for form
$_SESSION["csrf"] = uniqid(mt_rand(),true);
?>
<form method="post" action="<?PHP echo $_SERVER['REQUEST_URI'] ?>">
    <input type="hidden" name="nonce" value="<?PHP echo $_SESSION['csrf']; ?>"/>
    <!-- other form fields -->
    <!-- submit button -->
</form>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐