我试图了解有关跨站点伪造攻击的更多信息,并且一直在使用strip_tags和htmlspecialchars,但是刚刚看到一个视频,我也需要更改会话密钥...我是否必须更改会话密钥?我正在尝试通过执行以下基本形式来遵循特定的教程,但始终会失败:
<!DOCTYPE html>
<html>
<head>
<title> </title>
</head>
<body>
<form action="csrf.php" method="POST">
<input type="text" name="first_name" placeholder="What is your first name">
<input type="hidden" name="csrf" value="<?php echo $csrf ?>">
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
或者我只能执行以下操作,这足以防止会话劫持吗?我必须为每个会话页面都这样做吗?
<?php
ini_set('session.cookie_httponly', true); // prevent using javascript to steal session
session_start();
if(isset($_SESSION['last_ip']) === false) {
$_SESSION['last_ip'] = $_SERVER['REMOTE_ADDR'];
}
if ($_SESSION['last_ip'] !== $_SERVER['REMOTED_ADDR']) {
session_unset();
session_destroy();
}