Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Опредение реального адреса [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): « 1 [2] 3 »   

> Без описания
Viper
Отправлено: 25 Июня, 2012 - 16:13:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




MisHel64 пишет:
правда понять бы еще, почему он так советует


HTTP_CLIENT_IP отсылаемый клиентом заголовок.
HTTP_X_FORWARDED_FOR получаем после прохождения через прокси. А т.к. по не стандартизированному стандарту порядок в этом заголовке clien_ip, proxy, ... и сравнив с клиентским ip(доверенность у него, как бы, несколько "побольше") получаем что второй заголовок формируется проксей не по стандарту и соответственно считаем неверным.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Гость
Отправлено: 25 Июня, 2012 - 16:33:08
Post Id


УДАЛЁН










Viper пишет:
HTTP_CLIENT_IP отсылаемый клиентом заголовок.
Не правда. Не отсылает клиент этого заголовка. И кстати: http://www[dot]squid-cache[dot]org/Doc/c[dot][dot][dot]_send_client_ip/
 
 Top
EuGen Администратор
Отправлено: 25 Июня, 2012 - 16:42:20
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




MisHel64 пишет:
И кстати

Кстати - что именно? Какое отношение ICAP имеет к данному вопросу, если речь идет об анализе данных, имея в распоряжении только HTTP?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Гость
Отправлено: 25 Июня, 2012 - 16:57:36
Post Id


УДАЛЁН










EuGen Меня очень сложно затроллить, так что не советую пытаться это делать. Кроме того, своей неудачной попыткой, вы еще и показали, что не имеете ни малейшего представления, что такое squid. На этом я думаю, и эту дисскусию можно закончить, а вам стоит ознакомится с любой книгой по администрированию юникс подобных систем.
 
 Top
Champion Супермодератор
Отправлено: 25 Июня, 2012 - 17:00:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




MisHel64 пишет:
Чиста по приколу, если не лень конечно. Напишите, что выведет скрипт, ссылку на который вы дали, в моем случает.
Посчитает, что Ваш ip - один x_forvarded_for (да, их там 2, выглядит глупо, но один из них наиболее вероятно ваш).
MisHel64 пишет:
Viper пишет:
HTTP_CLIENT_IP отсылаемый клиентом заголовок.
Не правда.
Взял я fiddler, отправил заголовок Client-Ip: pink elephant, угадайте, что я увидел в массиве $_SERVER.
 
 Top
EuGen Администратор
Отправлено: 25 Июня, 2012 - 17:02:24
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Я задал Вам вопрос. Либо ответьте, либо не продолжайте. Какое именно отношение ICAP имеет к рассматриваемой задаче? - раз. И какое отношение squid имеет к ней ? - два (подсказка - Все прокси работают на squid?; какое отношение ПО каких-либо серверов/NAT/proxy имеют к тому, что приходит в HTTP-запросе от клиента, который нужно анализировать?)

Предупреждаю - мое терпение в отношении Вас на исходе. Я всегда стараюсь быть максимально корректным, но Ваше умение провоцировать, похоже, превосходит все грани мыслимого.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Гость
Отправлено: 25 Июня, 2012 - 17:07:38
Post Id


УДАЛЁН










Champion пишет:
Взял я fiddler, отправил заголовок Client-Ip: pink elephant, угадайте, что я увидел в массиве $_SERVER.
Не. Не угадаю.
Я проще сделал. Написал вот такой код:
PHP:
скопировать код в буфер обмена
  1. $DebFil = fopen($DebName,'w'); flock($DebFil,LOCK_EX);
  2. fwrite($DebFil,"[Server ARRAY]:\n");
  3. foreach ($_SERVER as $Key => $Value) { fwrite($DebFil,"   ${Key}\t${Value}\n"); }
  4. flock($DebFil,LOCK_UN);fclose($DebFil);

И посмотрел что туда пишется....
(Добавление)
EuGen
Viper пишет:
HTTP_CLIENT_IP отсылаемый клиентом заголовок.

Ключевое слово выделил жирным. Так понятней?

(Отредактировано автором: 25 Июня, 2012 - 17:15:05)

 
 Top
EuGen Администратор
Отправлено: 25 Июня, 2012 - 17:19:35
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




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


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Гость
Отправлено: 25 Июня, 2012 - 17:30:43
Post Id


УДАЛЁН










EuGen пишет:
Понятнее, что Вы почему-то клиентом считаете ту машину, которая инициировала запрос.

Даже комментировать не буду. Игра словами и не более.

EuGen пишет:
Доверять ему нет никаких оснований.

Доверять ему есть все основания. Почему, я уже не однократно писал. Жаль что вы этого не увидели. Может вам все же не стоит продолжать?

(Отредактировано автором: 25 Июня, 2012 - 17:33:14)

 
 Top
fdr21
Отправлено: 25 Июня, 2012 - 17:33:38
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Июнь 2012  


Помог: 5 раз(а)




Цитата:
Я проще сделал. Написал вот такой код:

можно еще проще))) Радость
 
 Top
Гость
Отправлено: 25 Июня, 2012 - 17:44:20
Post Id


УДАЛЁН










Viper пишет:
HTTP_CLIENT_IP отсылаемый клиентом заголовок.
HTTP_X_FORWARDED_FOR получаем после прохождения через прокси. А т.к. по не стандартизированному стандарту порядок в этом заголовке clien_ip, proxy, ... и сравнив с клиентским ip(доверенность у него, как бы, несколько "побольше") получаем что второй заголовок формируется проксей не по стандарту и соответственно считаем неверным.

Возвращаясь вот к этому. В ситуации, когда есть и CLIENT_IP и X_FORWARDED_FOR, и запрос проходил только через один прокси сервер, оба заголовка будут содержать один, и причем одинаковый IP. Вот при прохождении второго прокси, ситуация поменяется. В X_FORWARDED_FOR может быть дописан адрес первого прокси. Причем в зависимости от программы сервера в начало (сквид) или конец (мой случай). Вот вопрос, а будет ли перезаписан CLIENT_IP. Вот в чем вопрос то собственно. То, что он теоретически может быть перезаписан, я знаю. А вот практически?
(Добавление)
fdr21 пишет:
можно еще проще)))

Можно. Но вот только маленькая разница. Мой код, сохраняет в файл. А ваш выводит в браузер. Я конечно в курсе, что вывод можно перенаправить.
Но речь то не о том КАК увидеть, а о том, ЧТО увидеть. А так как ваш код выводит больше информации, причем не нужной, то значит, что с поставленной задачей он справляется хуже.
 
 Top
fdr21
Отправлено: 25 Июня, 2012 - 18:12:37
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Июнь 2012  


Помог: 5 раз(а)




Цитата:
Мой код, сохраняет в файл

Если вам нужно записать

конечно Я вас не принуждаю использовать именно так, делайте как вам удобно, просто думаю так производительней, и все в одной строчке)))
Цитата:
А так как ваш код выводит больше информации

Это как, вроде бы массив $_SERVER что так, что так он одинаков, или я ошибаюсь?))
и еще зачем Вам понадобился реальный Ip адрес юзера? по мне я считаю его можно подделать!
попробуйте изложит, может кто не будь альтернативу предложит!!!

(Отредактировано автором: 25 Июня, 2012 - 18:20:02)

 
 Top
Гость
Отправлено: 25 Июня, 2012 - 18:52:46
Post Id


УДАЛЁН










Ну для начало об эффективности кода. Мой выводит чуть больше информации, чем дамп массива, что отчетливо видно, даже из тех кусков, которые не вырезаны. Можно конечно сделать несколько file_put_contents. А что будет если страничку откроют одновременно более одного человека? Вот потенциальный источник ошибки. Не был я в комсомоле. По этому не привык создавать проблемы, только для того, что бы их героически решать. Можно конечно затолкать все в строку, а потом все разом сбросить. А реально этот велосипед со строками нужен? Да и одной строчкой тут уже не обойдешься.

Ну и ко второй части вопроса. Ответ банален. НАДО. И я думаю это исчерпывающий ответ. И более подробного не будет. Если уж на простой вопрос, из какой переменной взять значение адреса, даны десятки бессмысленных постов, и не был дан ни один аргументированный ответ, то что будет если я отвечу более подробно? Вы уверены, что результат будет другим? Ну дадут мне ссылок еще на десяток страниц, содержащие похожие на мой вопрос буквы. Ну прорекламируют еще пяток своих скриптов, реализующих то же самое, но совсем не то, да еще и криво. А оно мне надо?
И главное, все отвечающие будут абсолютно уверены, что только они умеют пользоваться гуглем, а я такой лох, не умею.

И по третей части. Подделать и обойти можно абсолютно все. Главное знать что обходить. А так как исходников в свободном доступе не будет, то знания эти придется добывать экспериментально.

(Отредактировано автором: 25 Июня, 2012 - 18:55:04)

 
 Top
Champion Супермодератор
Отправлено: 25 Июня, 2012 - 19:23:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




MisHel64 пишет:
Возвращаясь вот к этому. В ситуации, когда есть и CLIENT_IP и X_FORWARDED_FOR, и запрос проходил только через один прокси сервер, оба заголовка будут содержать один, и причем одинаковый IP. Вот при прохождении второго прокси, ситуация поменяется. В X_FORWARDED_FOR может быть дописан адрес первого прокси. Причем в зависимости от программы сервера в начало (сквид) или конец (мой случай). Вот вопрос, а будет ли перезаписан CLIENT_IP. Вот в чем вопрос то собственно. То, что он теоретически может быть перезаписан, я знаю. А вот практически?
Вот теперь я вижу совсем другой вопрос.
1. Он и клиентом(браузером / чем угодно) изначально может слаться какой угодно. Например, строка "розовый слоник".
2. Он может подменяться прокси сервером. И стираться. И Х_ФОРВАРДЕД тоже может.

MisHel64 пишет:
И по третей части. Подделать и обойти можно абсолютно все. Главное знать что обходить. А так как исходников в свободном доступе не будет, то знания эти придется добывать экспериментально.
Да ладно, принять http запрос и пернаправить его дальше и подправить что-то в заголовках - задача не особо сложная. Это на PHP на коленке делается без усилий.

Сложнее подделать REMOTE_ADDR - это не HTTP заголовок. Но вы знаете, что он дает адрес последнего узла. Остальное - не более, чем http заголовки, которыми пользоваться можно только для справки и доверять им стоит, но только как необязательно достоверному материалу.
 
 Top
fdr21
Отправлено: 25 Июня, 2012 - 19:41:29
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Июнь 2012  


Помог: 5 раз(а)




Цитата:
Мой выводит чуть больше информации, чем дамп массива, что отчетливо видно, даже из тех кусков, которые не вырезаны. Можно конечно сделать несколько file_put_contents. А что будет если страничку откроют одновременно более одного человека?

Умереть со смеху, Вы пожалуйста по внимательней)
в вашем скрипте:
PHP:
скопировать код в буфер обмена
  1. flock($DebFil,LOCK_EX); // Блокировка
  2. foreach ($_SERVER as $Key => $Value) { fwrite($DebFil,"   ${Key}\t${Value}\n"); }
  3. //проходит по массиву $_SERVER и записывает его ключи (${Key}) и их значение (${Value})
  4. //А еще что он записывает? Заголовок?
  5. fwrite($DebFil,"[Server ARRAY]:\n");
Радость
Если так то да... целый фонтан информации)))
Хочу вам еще раз показать

file_put_contents - записывает строку в файл $filename
print_r($_SERVER, TRUE) - возвращает строку массива $_SERVER с ключами и значениями (в удобочитаемом формате)
LOCK_EX - блокировка файла!!!

Оба примера одинаковые, за исключением заголовка!

На второй вопрос, вам был дан ответ даже не один раз!
истинный ИП, ну или последний из цепочек серверов будет в $_SERVER['REMOTE_ADDR'].
пробегите взглядом по PHP_manua-лу, о вашем заголовке там и духу нет.
почему, разработчики PHP не добавили его в мануал, в место $_SERVER['REMOTE_ADDR']?
Думаю догадаться не трудно!
Не все сервера отображают эти заголовки которые вы указали, и не все прокси сервера передают их. Если пользователь захочет подделать свой ИП, он их подделает!
 
 Top
Страниц (3): « 1 [2] 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB