shurc900
Новичок
как защититься от fsockopen???
Здравствуйте.
Назрела реальна проблема. Никак не могу придумать, как можно распознать, откуда производится передача GET or POST data на мой сайт. Поскольку при использовании функции fsockopen можно подделать не только все скрытые и нескрытые поля формы, но и Referer, и сессию и т.д.... даже не знаю за что уцепиться.
А вопрос состоит в том, чтобы я мог наверняка определить с моего ли сайта передаются GET/POST данные из формы или это какой-то хитрый ламер пытается бесплатно воспользоваться сервисами размещенными на моем сайте.
Лог ИП и прокси само собой. Но ограничивать я никого и не в чем не собираюсь, главное, чтобы с формой работал пользователь, находящийся на странице моего сайта, а не на удаленном хосте.
<?
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>
Здравствуйте.
Назрела реальна проблема. Никак не могу придумать, как можно распознать, откуда производится передача GET or POST data на мой сайт. Поскольку при использовании функции fsockopen можно подделать не только все скрытые и нескрытые поля формы, но и Referer, и сессию и т.д.... даже не знаю за что уцепиться.
А вопрос состоит в том, чтобы я мог наверняка определить с моего ли сайта передаются GET/POST данные из формы или это какой-то хитрый ламер пытается бесплатно воспользоваться сервисами размещенными на моем сайте.
Лог ИП и прокси само собой. Но ограничивать я никого и не в чем не собираюсь, главное, чтобы с формой работал пользователь, находящийся на странице моего сайта, а не на удаленном хосте.
<?
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>