Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / авторизация по F5 / 12 сообщений из 12, страница 1 из 1
09.10.2017, 15:46
    #39533504
Qlewero4ek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация по F5
На моём сайте вводится логин пароль, выставляются куки - пользователь авторизован. затем пользователь нажимает кнопку выход - куки авторизации удаляются из базы данных, пользователь перенаправляется на страницу авторизации. Теперь если пользователь нажмёт кнопку назад в браузере, а затем обновит страницу, то он вновь будет авторизован с новым куки. что делать?
...
Рейтинг: 0 / 0
09.10.2017, 16:36
    #39533554
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация по F5
А как это он будет авторизован, на каком основании?
Старая кука из базы удалена - значит, попытка сопоставления пришедшей куки с конкретным пользователем по записи в таблице авторизаций не будет успешной. В такой ситуации должен выдаваться запрос на авторизацию.

Qlewero4ekчто делать?Анализировать алгоритм, искать ошибку.
...
Рейтинг: 0 / 0
09.10.2017, 16:51
    #39533572
ewero4ek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация по F5
vkle, повторяется запрос с отправкой логина и пароля на эту страницу. потому и куки создаётся новая. попробую отправлять не формой, а ajaxом, возможно, ajax-запрос невозможно будет повторить. отпишусь, что получится
...
Рейтинг: 0 / 0
09.10.2017, 18:26
    #39533625
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация по F5
Повторная отправка формы по F5 уж не знаю сколько раз обсуждалась на форуме. Простейшее решение - редирект страницы на себя. Продвинутое - в форму при отдаче добавляем одноразовый уникальный идентификатор экземпляра формы в скрытое поле, а на приеме смотрим, есть это идентификатор в базе или нет. Есть - авторизуем и удаляем идентификатор (ибо, он уже протух), нет - отдаем форму. Есть ещё варианты.
...
Рейтинг: 0 / 0
10.10.2017, 08:54
    #39533813
Qlewero4ek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация по F5
vkle, по нажатию на кнопку "выход" я удаляю куки из бд, делаю перенаправление на эту же страницу. т.к. куки не совпадают, пользователя выкидывает на страницу авторизации. пока всё хорошо. но! опять же нажимаю кнопку назад, на страницу, где должен сидеть уже авторизированный пользователь. она не отображается. нажимаю f5. повторно отправляются логин и пароль, пользователь автоматически входит
...
Рейтинг: 0 / 0
10.10.2017, 09:33
    #39533846
Qlewero4ek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация по F5
vkle, со скрытой формой и записью в бд звучит хорошо, но это надо создавать отдельную таблицу в бд, т.к. нет никакой привязки к конкретному пользователю, + при каждом обновлении страницы авторизации будет создавать новая запись в бд, а старая навсегда останется в бд, т.е. придётся вновь обращаться к базе со страницы авторизации и удалять её. ajaxом не получится? или получится, но способ со скрытыми идентификаторами хорош именно тем, что работает исключительно средствами php?
...
Рейтинг: 0 / 0
10.10.2017, 10:18
    #39533874
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация по F5
Qlewero4ekсо скрытой формойС полем
Qlewero4ekнет никакой привязки к конкретному пользователю,В таблице временных идентификаторов экземпляра формы? Она и не нужна.
Qlewero4ekстарая навсегда останется в бдЧто мешает кроме "своей" записи удалить так же и остальные протухшие (записи с возрастом, скажем, более 10 минут) непосредственно в скрипте авторизации?
Qlewero4ekработает исключительно средствами php?Это алгоритмическая фишка, которая явно разрешает принимать данные от клиента только если форма была сгенерирована специально для конкретного случая. При переходах на предыдущую страницу формой будет отдан "протухший" идентификатор. Серверная технология не имеет никакого значения.

Либо ищите ошибку в реализации Вашего алгоритма. Если верить описанию, он должен работать. Конечно, если только используется авторизация веб-формой, а не HTTP-авторизация, когда браузер по каждому чиху отправляет регистрационные данные.
...
Рейтинг: 0 / 0
10.10.2017, 15:51
    #39534149
Qlewero4ek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация по F5
понял принцип. напишу для чайников, как я:
1.php - страница авторизации
2.php - страница обработки введенных логина-пароля, генерации и установки куки в бд и браузер
3.php - рабочая страница
т.е. чтобы авторизоваться по f5, нужно нажать f5 на странице 2.php. но 2.php тупо перенаправляет на 3.php при правильном пароле, на 1.php при неправильном, на ней браузер не задерживается
как всё оказалось просто. скрытые поля начал делать, но не пригодились, т.к. пока что не нашёл минусов данного решения
...
Рейтинг: 0 / 0
10.10.2017, 15:59
    #39534167
Qlewero4ek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация по F5
при нажатии кнопки назад в браузере пользователь всё ещё может попасть с 1.php на 3.php и прочитать личную информацию пользователя на странице, даже не имея куки. что делать в этом случае?
...
Рейтинг: 0 / 0
10.10.2017, 19:32
    #39534325
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация по F5
Qlewero4ekпри нажатии кнопки назад в браузере пользователь всё ещё может попасть с 1.php на 3.php и прочитать личную информацию пользователя на странице, даже не имея куки.Откуда берется страница для отображения - её вебсервер отдает, или, банально, браузер достает из своего кеша? В последнем случае можно пытаться запретить кеширование, ограничить время жизни документа, но всё это носит отчасти рекомендательный характер и вполне может быть проигнорировано браузером или прокси.
...
Рейтинг: 0 / 0
13.10.2017, 13:44
    #39535993
Qlewero4ek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация по F5
прописал
Код: html
1.
<meta http-equiv="Cache-Control" content="no-cache">

не помогло. сделал так: при нажатии на кнопку идет перенаправление на эту же страницу с post-параметром. при загрузке страницы проверяется, имеется ли этот параметр. если да, то страница пустая, происходит перенаправление на страницу регистрации. Но. При нажатии кнопки "назад" в браузере переходим не на пустую страницу, а на заполненную всеми личными данными, которые, остаются мистическим образом(чтобы получить их, нужны куки, которые стираются из бд при нажатии на кнопку "выход".
по моему плану я выполнял переход на ту же страницу, но не заполнять, чтобы браузер запомнил её(адреса совпадают, get запросов нет. а при нажатии кнопки "назад" в браузере должно перекидывать на пустую страницу. но что-то идёт не так...
...
Рейтинг: 0 / 0
13.10.2017, 15:07
    #39536048
Qlewero4ek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация по F5
мой способ работает! проблема была в том, что куки не успевали удалиться ajax-запросом, хотя ajax-запрос и стоит выше по коду, чем перенаправление. сначала выполняю перенаправление на свою же страницу при помощи скрипта с post-параметром, в шапке страницы проверяю на php, не пришёл ли параметр. если пришёл, то перенаправляю на страницу регистрации. если пользователь нажмёт "назад" в браузере, то попадёт на пустую страницу. таймеры не пригодились, страница успешно перезаписывается в кэше моментально
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / авторизация по F5 / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]