オープンリダイレクト 04 - 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>
http://localhost:9001/openredirect-04.php?url=http://bogus.jp?localhost:9001/