解决方案:

增加一个隐藏的表单域,包含一个一次性token,将会在个token储存在用户会话中。
<html>
<body>
<?php
    session_start();
    $_SESSION['token']=md5(uniqid(mt_rand(),true));
?>
<form action="b.php" method="POST">
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>">
<p>名称:<input type="text" name="name"></p>
<p>数量:<input type="password" name="password"></p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>

接收到一个表示表单提交的请求时,检查token,确保它们是匹配的:

<?php
    session_start();
    if((!isset($_SESSION['token'])) || ($_POST['token'] != $_SESSION['token'])){
        //提示输入密码
    }else{
        //继续
    }
?>