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 :: Логирование в процессе авторизации
Что есть "filter" в контексте класса, почему она идёт отдельно от него? (Нарушает принцип инкапсуляции, так как пользователь не обязан знать, что происходит внутри и зачем нужна дополнительная функция)
Смысл этого действия в локальном контексте метода без прямого вызова gc_collect_cycles ?
Перемещено в "Прочее"
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
esterio
Отправлено: 23 Сентября, 2013 - 12:08:07
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
improbable пишет:
вроде всё нормально)
1. подавления ошыбок вместо их обработкы
2. отсутсвие инкапсуляции
3. функция filter ужас для програмистов
3.1. strip_tags - удалит тегы, htmlspecialchars - преобразует кавички. - зачем если я логировать хочу, я должен все видеть
3.2. поверте сберщик мусора умнее Вас. так что не нужно unset($max_length, $replace_vb);
4. $_SERVER['REMOTE_ADDR'] - не всегда верный адресс (читать прокси)
Возьмите учебник поновее, много кода из старых уроков
Мелкий
Отправлено: 23 Сентября, 2013 - 12:32:48
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
esterio пишет:
4. $_SERVER['REMOTE_ADDR'] - не всегда верный адресс (читать прокси)
Всегда верный адрес. Это именно тот адрес, с которого пришёл запрос.
----- PostgreSQL DBA
EuGen
Отправлено: 23 Сентября, 2013 - 12:38:38
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Мелкий пишет:
Всегда верный адрес. Это именно тот адрес, с которого пришёл запрос.
Всё-таки, не всегда. Но безотносительно прокси (который не имеет отношения к вопросу), он может быть неверным только из-за конфигурации веб-сервера (единственный мне известный случай - 127.0.0.1 на любой запрос в IIS в ряде случаев)
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
esterio
Отправлено: 23 Сентября, 2013 - 13:39:06
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
1. когда на фронте Nginx а на бекенде апач без модуля mod_rpaf
2. при использовании прокси в $_SERVER['REMOTE_ADDR'] будет ИП самого прокси, а ИП пользователя будет в HTTP_X_FORWARDED_FOR
Мелкий
Отправлено: 23 Сентября, 2013 - 14:02:49
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
esterio пишет:
при использовании прокси в $_SERVER['REMOTE_ADDR'] будет ИП самого прокси, а ИП пользователя будет в HTTP_X_FORWARDED_FOR
Вот именно IP прокси и надо логировать. И, при наличии и желании - весь X_FORWARDED_FOR. А то и весь $_SERVER.
Остальные два случая - всё-таки ошибка конфигурирования. Когда должна исправляться конфигурированием.
----- PostgreSQL DBA
Squirrel
Отправлено: 23 Сентября, 2013 - 15:08:33
Забанен
Покинул форум
Сообщений всего: 147
Дата рег-ции: Авг. 2013
Помог: 4 раз(а)
[+]
Мелкий пишет:
Всегда верный адрес. Это именно тот адрес, с которого пришёл запрос.
Вопрос чисто в семантике. Все зависит, от того, что именно понимать под "верный адрес". По этому и утверждения "всегда верный" и "чаще всего не верный" одинаково верны.
Мелкий пишет:
X_FORWARDED_FOR.
Не каждый прокси его выдаст. Любой HIA прокси его точно не выдаст.
В случае описанном esterio REMOTE_ADDR вообще не имеет никакой ценности. А вот X_FORWARDED_FOR как раз и представляет интерес.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.