📅  最后修改于: 2023-12-03 14:58:57.970000             🧑  作者: Mango
$_SESSION('HTTP_REFERER')
在 Web 开发中,$_SESSION('HTTP_REFERER')
是一个非常有用的变量。它包含了当前请求的来源 URL,通常用于跟踪用户在网站上的行为。
$_SESSION('HTTP_REFERER')
可以用于防止跨站点伪造请求 (CSRF) 攻击。因为 CSRF 攻击者需要知道其攻击的目标页面,而使用 $_SESSION('HTTP_REFERER')
可以验证请求是否来自该目标页面。
下面是一个示例:
session_start();
if (!isset($_SESSION['ref']) && isset($_SERVER['HTTP_REFERER'])) {
$_SESSION['ref'] = $_SERVER['HTTP_REFERER'];
}
if (!isset($_SESSION['ref']) || $_SESSION['ref'] !== $_SERVER['HTTP_REFERER']) {
die('Invalid request.');
}
// 正常处理请求...
在这个示例中,我们用 $_SESSION['ref']
存储当前请求的来源 URL,然后利用它来验证后续请求是否来自同一个页面。
需要注意的是,$_SESSION('HTTP_REFERER')
并不是一个可信源,因为它可以被伪造或篡改。所以在使用它时,还需要做好其他安全措施。
$_SESSION('HTTP_REFERER')
是一个很有用的变量,可以用于跟踪用户行为和防止 CSRF 攻击。但在使用它时,需要注意其安全性,不要将其作为唯一的安全验证措施。