리퍼러 사이트에 따라 스크립트를 실행할 수 있는지 궁금합니다. 예를 들어 사용자가 Facebook에서 내 사이트에 액세스하면 스크립트가 활성화되기를 원하지만 사용자가 Google 검색을 통해 사이트에 액세스하면 스크립트가 실행되지 않습니다. 이것이 가능한가?리퍼러를 사용하여 스크립트 실행
0
A
답변
2
$_SERVER['HTTP_REFERER']
을 테스트하여 사용자가 Facebook에서 왔는지, 다른 방식으로 행동하는지 확인할 수 있어야합니다.
0
가능합니다. 리퍼러는 스푸핑 될 수 있으므로 염두에두면 보안 관련 가치를 기반으로 보안 관련 작업을 수행해서는 안됩니다.
1
서버 측 또는 클라이언트 측 스크립트를 의미합니까?
클라이언트 측에서 document.referrer
을 통해 리퍼러에 액세스 할 수 있습니다 (예 : 해당 HTTP 헤더의 철자가 틀린 경우에도 'r'이 두 배로 나타남). 예를 들면 :
if (document.referrer.toLowerCase().indexOf('//www.example.com')) {
document.getElementById('message').innerHTML= 'Hello, visitor from example.com';
}
0
나는 같은 것을 할 것입니다 :
if (array_key_exists('HTTP_REFERER', $_SERVER) === true)
{
// this will give you something like google.com or facebook.com
$domain = str_ireplace('www.', '', parse_url($_SERVER['HTTP_REFERER'], 'PHP_URL_HOST'));
// check if there is any referer script you want to execute
if (is_file('path/to/scripts/' . $domain . '.php') === true)
{
// include the path/to/scripts/google.com.php for instance
include('path/to/scripts/' . $domain . '.php');
}
}
+1은 몰랐어! –