如何在PHP和Apache中防止主机头注入

ou6hu8tu  于 2022-11-16  发布在  Apache
关注(0)|答案(1)|浏览(143)

我希望我的网站能防止主机头注入,为了实现这一点,我在PHP中应用了以下代码。

$allowed_hosts = [
    "127.0.0.1",
    "localhost",
    "10.x.x.28"
];

if (isset($_SERVER['HTTP_HOST']) && !in_array($_SERVER['HTTP_HOST'], $allowed_hosts)) {
    http_response_code(403);
    die();
}

if (isset($_SERVER['SERVER_NAME']) && !in_array($_SERVER['SERVER_NAME'], $allowed_hosts)) {
    http_response_code(403);
    die();
}

当我使用BurpSuite检查它时,它对http://localhost/mysite/(带一个尾随斜杠)工作正常,但当我访问http://localhost/mysite(不带尾随斜杠)时,上面的代码没有任何效果。
请建议我,如果我必须配置服务器或必须写代码。

qij5mzcb

qij5mzcb1#

将这些行添加到.htaccess文件中

DirectorySlash Off
SetHandler some-handler

我希望这能奏效。

相关问题