Приветствую, Есть задача создания системы постинга в каталоги, работает все, кроме постинга в один тип(исходные коды есть). Там проводится проверка на совпадение хоста, где расположен каталог с хостом реферера. Код в каталоге, отвечающий за проверку: PHP: if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST' AND !defined('SKIP_REFERRER_CHECK')) { if ($_SERVER['HTTP_HOST'] OR $_ENV['HTTP_HOST']) { $http_host = ($_SERVER['HTTP_HOST'] ? $_SERVER['HTTP_HOST'] : $_ENV['HTTP_HOST']); } else if ($_SERVER['SERVER_NAME'] OR $_ENV['SERVER_NAME']) { $http_host = ($_SERVER['SERVER_NAME'] ? $_SERVER['SERVER_NAME'] : $_ENV['SERVER_NAME']); } if ($http_host AND $_SERVER['HTTP_REFERER']) { $referrer_parts = parse_url($_SERVER['HTTP_REFERER']); $http_host = preg_replace('#^www\.#i', '', $http_host); $http_port = intval($referrer_parts['port']); $refhost = $referrer_parts['host'] . (!empty($http_port) ? ":$http_port" : ''); if (!preg_match('#' . preg_quote($http_host, '#') . '$#siU', $refhost)) { die('POST requests from foreign hosts are not allowed.'); } } } В итоге проверки у меня получается, что site.ru - хост каталога и site.ru:80 - хост рефа. Очевидно, что они не равны Можно как-нибудь попытаться обойти это? Использую класс Snoopy. :?:
я не понял? надо Reffer подделать что ли? так это запросто ... ну или добавляй для $http_host порт. какие проблемы?
нет, речь шла не о банальной подделке рефа - шла о моей невнимательности в качестве реферера я передавал страницу, с условиями, чекбоксом о согласии с правилами и прочей ерундой... а нужно было передать хост_каталога:80 и, что называется, не париться) тему можно закрывать, спасибо