PHP代码审计:解决网站不跳转到 www.host.gay 问题
PHP代码审计:解决网站不跳转到 www.host.gay 问题
在进行网站代码审计时,你可能会遇到一个问题:网站无法跳转到预期的目标地址,比如 www.host.gay。
以下是常见的代码实现:
if (!isset($_SESSION['redirected'])) {
$_SESSION['redirected'] = true;
$current_url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$new_url = 'http://www.host.gay' . $_SERVER['REQUEST_URI'];
header('Refresh: 5; URL=$new_url');
echo '<title>跳转中,请稍等 </title>嘿嘿';
exit();
} else {
// 已经跳转过,不再跳转
}
上述代码使用 header('Refresh: 5; URL=$new_url') 实现跳转,但这存在一些问题,可能会导致网站不跳转。
解决方案
可以将代码修改为以下方式,保留原有功能,并解决不跳转的问题:
if (!isset($_SESSION['redirected'])) {
$_SESSION['redirected'] = true;
$current_url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$new_url = 'http://www.host.gay' . $_SERVER['REQUEST_URI'];
if ($current_url != $new_url) {
header('Location: $new_url');
exit();
}
} else {
// 已经跳转过,不再跳转
}
这样修改后,如果当前访问的URL和重定向后的URL不一样,就会自动跳转到新的URL。如果已经跳转过,就不会再跳转。
注意:
$_SESSION['redirected']存储了是否已经跳转过的信息。- 代码中使用
$current_url和$new_url分别存储当前访问的URL和重定向后的URL,方便进行比较。 header('Location: $new_url')用于直接重定向到新的URL。
希望本文能帮助你解决网站跳转问题,并提升你的代码审计能力。
相关知识:
- PHP $_SESSION 变量
- PHP header() 函数
- PHP $_SERVER 变量
原文地址: https://www.cveoy.top/t/topic/nyr8 著作权归作者所有。请勿转载和采集!