リファラー データは簡単に偽装できるため、安全ではありません。ただし、それでもニーズに合っている場合は$_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";
?>