![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
можно подробнее? информация консультативная, для удобства пользователя, никакой авторизации на этом поле не завязано. пусть поле будет подделано, если проверять содержимое по каким-то параметром(принадлежность домену, и т.д..) чем это грозит? или может грозить? P.S. Началось с темы Кнопка "Назад", оптимальный алгоритм |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Не вижу ничего страшного в использовании HTTP_REFERER. Но, если логически подумать, его нужно использовать при условии что источник, откуда пришел пользователь, может быть какой угодно и нам неизвестный. Если все идет с нашего сайта, добавляем к URL формы ?return_url=/return/url/.
Добавлено через 2 минуты и 18 секунд Кстати, если речь все же идет о проверке валидности пользователя, тогда мне становится не совсем ясно с какого боку сюда прибился HTTP_REFERER? Ушел читать тему по ссылке... -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
естественно, интересуют глобальные аспекты, но и вопрос, затронутый в указанной теме: по заявлению Feldmarschall'a, HTTP_REFFERER использовать нельзя. категорически. вот я и поинтересовался, с чем может быть связана такая категоричность. |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
skyboy, я понял его слова несколько иначе - имеется ввиду, строить логику выполнения на основании HTTP_REFERER (мне так показалось). А вообще, сессия решает все проблемы, поэтому я не вижу необходимости в использовании проверок по REFERRER'у.
Нужно иметь ввиду что: 1. REFERRER может быть подделан. 2. REFERRER может придти пустым. 3. REFERRER может служить в качестве обратной ссылки после выполнения некоего действия, в случае отсутствия которого нужно подставлять default location. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Если у некоторого количества пользователей программа работать не будет, то, по моему мнению, такой программой пользоваться нельзя.
Ну вот к примеру скачал пользователь калькулятор. Нажимает 2+2, а в поле результата - пусто. У троих было нормально, а у четвертого - не считает. Я считаю, что такие программы писать нельзя. Сайт, который не работает - это позор и отток посетителей. Проблемы, которые случаются при работе любых сайтов, исправляются как можно раньше. Это, я надеюсь, аксиома, которую доказывать не нужно. Но проблему с отсутствующим реферером решить в принципе невозможно. То есть, использовать реферер - это намеренно делать неработающим сайт. Я считаю такой подход невозможным. Добавлено через 1 минуту и 27 секунд IZ@TOP, да, совершенно верно. Речь идет не о реферере вообще, а об использовании в логике приложения. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
IZ@TOP, спасибо. я думал, я что-то по рассеянности упустил.
Feldmarschall, спасибо. хотя, хотелось бы узнать, сталкивался ли ты со случаем "неотдачи" реферрера от более-менее популярного сейчас браузера. а то ведь человек может и куки почистить внезапно("delete private information") и сессия внезапно окажется пустой - и тут ничего не поделать... |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
skyboy, да, разумеется.
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
с другой стороны, с использованием сессий есть проблема.
проблема, связанная с тем, что сессия одна. например, пусть у нас страница, с которой надо "вернуться назад" - это форма авторизации на... скажем, torrent-трекере. вот пооткрывал человек кучу тем в разных закладках(сессий браузера одна). потом вдруг обнаруживает, что для скачивания нужна авторизация(получил на всех страницах форму авторизации). в сессии адресом возврата значится последняя открытая страница. значит, после авторизации он на всех закладках попадет на последнюю открытую страницу. логично, с точки зрения работы механизма сессий, но нелогично с точки зрения пользователя. потому, как мне думается, тут использование refferer'a вполне оправдано, а уж если в этом поле будет пусто... что ж, пользователь, возможно, получит проблемы(впрочем, можно вывести его на главную страницу). универсально работающий метод(к примеру, передавать скрипту, формирующему авторизацию, параметром адрес, с которого был сделан переход) будет довольно-таки трудоемким, как я считаю. т.е. ссылки, передающие адрес, с которого осуществлен переход - это, конечно, универсально, но громоздко и некрасиво. |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Я тут подумал, что файрволл Аутпост может быть не так туп, как мне представлялось ранее, а рубит реферер только при переходах между сайтами. Если же домен в реферере и хосте совпадает, то не рубит. Надо проверить эту мысль.
Впрочем, остаются ещё всякие акселераторы, которые в большом ходу у провайдеров. Описанная ситуация представляется мне надуманной. Я могу представить себе пользователя трекера, который открывает раздачи в новом окне из поиска. Но представить себе его же, но жмущего "скачать" и тут же, не глядя на результат, идущего в следующее окно, жать то же самое - не могу. Как по мне - так я форму авторизации выдаю прямо на той странице, которая была запрошена. то есть, ничего запоминать вообще не надо. И в большинстве известных мне сайтов делается то же самое. То есть, сессия не нужна вообще, получается, для этих целей. |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
В таком случае, прерывание выполнения программы должно произойти до выполнения запрашиваемого действия. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
||||
|
||||
| flashaa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 19 Всего: 25 |
По-моему суть всей дискусси сводится к тому что, реферер может быть пуст и что он может быть подделан а тут уже 10 постов интерпретации каждым этих двух фактов )
|
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Реализуй в сессии массив адресов возврата
Передавай вместо урл - UID. Куда возвращаться будеш вытаскивать из этого стека по UID. Если ты сам себе злобный буратино и откроешь 10к авторизаций с одной и той же страницы, то после авторизации на любой из них, ты все равно вернешься на исходную. Единственное усложнение - я бы предусмотрел сборщик мусора по массиву. Т.е. ссылки по которым произошел уже возврат - должны чиститься. Это сообщение отредактировал(а) Fortop - 22.4.2008, 14:06 -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Чего-то вы по-моему мудрите...
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
flashaa, нет, речь не совсем об этом.
Речь о том, насколько эти два факта распространены, и следует ли их учитывать при разработке сайта. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |