オープンリダイレクト 03 - yujitounai/helloworld GitHub Wiki
先頭がリダイレクタと同じホストのときしかリダイレクトさせない
<?php
if($loc=filter_input(INPUT_GET, 'url')){
$regexp="#^".(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https://' : 'http://') . $_SERVER['HTTP_HOST']."#";
if (!preg_match($regexp, $loc)) {
$loc=(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . strstr($_SERVER['REQUEST_URI'], '?', true);
}
header("location: ".$loc);
exit;
}else {
echo "usage: ?url=page";
echo "<br>";
}
?>
<div class="box">
<form method="get" action="">url
<input name="url" type="text">
<input type="submit">
</form>
</div>
openredirect-03.php?url=http://localhost:[email protected]/