只能从域访问的标头

时间:2013-08-26 11:57:17

标签: php

我的一个网页上有这个test.php代码。

<?php
ob_start();
$links = array(
    'dolhd' => '/dohd.m3u8',
    'dol1' => '/dol1.m3u8',
    'dol2' => '/dol2.m3u8',
    'dol3' => '/dol3.m3u8',
    'thd' => '/thd.m3u8',
    't1' => '/t1.m3u8',
    'test' => 'https://www.youtube.com/watch?v=0OWt8O8pgw0',
);

$id = $_GET['id'] ? ($links[$_GET['id']] ? $_GET['id']: 'test') : 'test';
header ('Location:'.$links[$id]);
ob_flush();
exit;
?>

可以从浏览器访问该页面,如test.php?id=dol1,结果是下载文件dol1.m3u8

我想知道该页面是否可以仅从同一域中的其他页面访问。

或阻止除域外的所有ip-s的访问。

2 个答案:

答案 0 :(得分:0)

将您的重定向文件标题更改为您的IP地址:

<?php
$allow = array("192.168.10.1", "192.168.10.2", "192.168.10.3");

if (!in_array($_SERVER['REMOTE_ADDR'], $allow)) {
   echo "Your access denied!";
   exit();
} 
?>

答案 1 :(得分:0)

if ($_SERVER["HTTP_REFERER"]!=="your.domain.here"){
//redirect or whatever - referrering url not from this domain
            }else{
ob_start();
$links = array(
    'dolhd' => '/dohd.m3u8',
    'dol1' => '/dol1.m3u8',
    'dol2' => '/dol2.m3u8',
    'dol3' => '/dol3.m3u8',
    'thd' => '/thd.m3u8',
    't1' => '/t1.m3u8',
    'test' => 'https://www.youtube.com/watch?v=0OWt8O8pgw0',
);

$id = $_GET['id'] ? ($links[$_GET['id']] ? $_GET['id']: 'test') : 'test';
header ('Location:'.$links[$id]);
ob_flush();
exit;
}

确保将“your.domain.here”替换为您所在域的所需字符串。更多信息在这里 - &gt; http://php.net/manual/en/reserved.variables.server.php