这将是不安全的,因为引荐来源数据很容易被欺骗。但是,如果它仍然满足您的需求,那么您应该已经可以使用您的代码,因为$_SERVER['HTTP_REFERER']
它包含完整的引用 URL 而不仅仅是域。实际上,您当前的代码需要一些调整,因为它不能这样工作:
<?php
// This is to check if the request is coming from a specific domain
$ref = $_SERVER['HTTP_REFERER'];
$refData = parse_url($ref);
if($refData['host'] !== 'domain.com') {
// Output string and stop execution
die("Hotlinking not permitted");
}
echo "Executing code here";
?>
请注意,如果您在检查它是否是您想要的之前检查是否设置了 HTTP_REFERER,那么人们会在根本没有设置任何引荐来源网址的情况下访问您的脚本,因此无论如何您都应该检查它。现在,检查特定的 URL 要简单得多:
<?php
// This is to check if the request is coming from a specific URL
$ref = $_SERVER['HTTP_REFERER'];
if($ref !== 'http://domain.com/page.html') {
die("Hotlinking not permitted");
}
echo "Executing code here";
?>