Как обнаружить URL-адрес, доступ к которому осуществляется напрямую или через CURL - PullRequest
0 голосов
/ 20 августа 2011
// remote.php on http://www.example.com/
<?php
function curl_access()
{ /*
  some codes here to detect
  this script accessed via
  curl or direct and returns $r.
  (without checking referrer or user agent)
  */
  return $r;
}
$curl_access = curl_access();
if ($curl_access)
{ echo 'Accessed via CURL';
} else
{ echo 'Direct access';
}
?>

// some file on a server
<?php
$h = curl_init();
curl_setopt($c, CURLOPT_URL, "http://www.example.com/remote.php");
curl_exec($c); // returns 'Accessed via CURL'
curl_close($c);
?>

Ответы [ 3 ]

7 голосов
/ 20 августа 2011

Вы не можете.HTTP-запрос - это HTTP-запрос, и вы исключили очевидную отличительную характеристику запроса, сделанного браузером (содержимое заголовка агента пользователя).

0 голосов
/ 02 июля 2013

Поскольку curl работает как любой браузер, трудно определить, кто это - человек или машина. Для этого, прежде всего, вы можете

1.print $_SERVER php variable
2.json_encode this variable
3.put in a database field named server information
4.then browse this site one time
5.and curl execute for this same URL
6.then print both information

Здесь вы можете увидеть другую проблему. Я нашел разные термины HTTP_COOKIE, которых нет в информации запроса curl.

Так вы можете обнаружить

if (!isset($_SERVER['HTTP_COOKIE'])) {          
            die('Opps! I think, your request is not proper way. Please contact');
    }

Я думаю, что это очень поможет тем, кто хочет защитить данные со своего сайта.

подробности http://saidul.songzog.com/my-blog/details/869/how-can-detect-how-to-detect-a-url-accessed-direct-or-via-curl.html

0 голосов
/ 20 августа 2011

Вы можете проверить пользовательский агент посетителя с помощью

_SERVER['HTTP_USER_AGENT']

, отметив, что его можно изменить при использовании curl с флагом -A.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...