ФорумПрограммированиеПыхнуть хотите?F.A.Q. → Авторизация пользователей в полном смысле этого слова.

Авторизация пользователей в полном смысле этого слова.

  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 6 декабря 2007 г. 17:39, спустя 20 минут 52 секунды

    В тему плагин для ФФ, запрет на чтение кук через жабаскрипт!
    Adds httpOnly cookie support to Firefox by encrypting cookies marked as httpOnly on the browser side, so that JavaScript cannot read them.

    https://addons.mozilla.org/ru/firefox/addon/3629

    почему у вас https не обрабатывается?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 6 декабря 2007 г. 17:49, спустя 10 минут 13 секунд

    adw0rd, обмен информацией о куках между сервером и браузером это чать HTTP протокола, согласен?
    HTTP протокол представляет собой "запрос - ответ". Ошибка твоя и многих других в том, что путают запрос и ответ. Отсюда возникает масса проблем, самой распространенной из которых является непонимание того, что делает функция header.

    Так вот, когда браузер информирует сервер о куках т.е. идет ЗАПРОС, php нам услужливо разбирает заголовок по массивам $_GET, $_POST, $_COOKIE и.т.п. На этом все заканчивается, php честно избавил нас от рутинной работы.
    А вот когда ты вызываешь функцию setcookie, php опять же услужливо формирует заголовок ОТВЕТА браузеру в котором указывает какие куки поставить/удалить.

    Уловил?
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 6 декабря 2007 г. 18:04, спустя 14 минут 31 секунду


    adw0rd, обмен куками между сервером и браузером это чать HTTP протокола, согласен?


    согласен


    HTTP протокол представляет собой "запрос - ответ". Ошибка твоя и многих других в том, что путают запрос и ответ. Отсюда возникает масса проблем, самой распространенной из которых является непонимание того, что делает функция header.


    а вот это не правда, где "моя" ошибка, в чем я ошибся? Я прекрасно понимаю что делает ф-ия header, она формирует заголовки, а после того как скрипт отработал шлет их клиенту, вместе со всей остальной структурой сверстаной-страницы, ну или вообще не страницы, не суть!


    Так вот, когда браузер информирует сервер о куках т.е. идет ЗАПРОС, php нам услужливо разбирает заголовок по массивам $_GET, $_POST, $_COOKIE и.т.п.


    Не информирует а передает! (информирует это типа: слушай сервер, у меня есть куки для тебя, тебе надо их или нет?)


    А вот когда ты вызываешь функцию setcookie сервер формирует заголовок ОТВЕТА браузеру в котором указывает какие куки поставить/удалить.


    "удалить" - можно в кавычках, на самом деле можно стереть содержимое и время жизни куки в минус, после получения таких заголовков кука умрет (из-за тайма)


    Уловил?


    это все я прекрасно знаю, и? Что я уловить должен?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 6 декабря 2007 г. 18:08, спустя 4 минуты 23 секунды


    это все я прекрасно знаю, и? Что я уловить должен?
    Извини, я не увидел в твоих комментах ничего содержательного, только цепляние к словам. Если ты все это прекрасно знаешь, то поймешь почему вызвало недоумение unset($_COOKIE . На этом я заканчиваю данную дискуссию.
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 6 декабря 2007 г. 18:09, спустя 31 секунду

    Ошибка твоя и многих других в том
    - вот это особенно огорчает, на основании чего такие выводы???

    AlexB если бы не это, то я бы написал более вежливо. Если ты хотел помочь, то извини погорячился…
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 6 декабря 2007 г. 18:20, спустя 10 минут 52 секунды

    Столько наездов и принижений в мой адрес, что пожалуй вернемся и я все разъестню:
    Я делаю так:

    $_SESSION = array(); //Зачистка массива сессий
    unset($_COOKIE[session_name()]); //Зачистка массива куков
    session_destroy(); //Зачистка хранилища сессий


    Вас всех зацепила эта строчка
    unset($_COOKIE[session_name()]);

    И я так понял вы подумали что я таким способом чистю куки? НЕТ.
    Я удаляю сид из массива. Так как он нах не нужен больше.
    Почему тогда я после этого не чистю куки? А зачем? Сессии то больше нет и ей не смогут воспользоваться! Зачем чистить то?

    Надеюсь больше нет претензий к моему куску кода!
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 6 декабря 2007 г. 21:28, спустя 3 часа 8 минут 41 секунду

    А ты уверен что сессии действительно нет и что файлы с данными удаляются из tmp сразу после session_destroy()? :)
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 6 декабря 2007 г. 21:29, спустя 40 секунд

    харош факаться в факовой теме!
    все умрут, а я изумруд
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 6 декабря 2007 г. 21:42, спустя 13 минут


    А ты уверен что сессии действительно нет и что файлы с данными удаляются из tmp сразу после session_destroy()? :)


    Да. Был в этом уверен, но решил проверить! Да, сессия удаляется :)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • kendo

    Сообщения: 446 Репутация: N Группа: Адекваты

    Spritz 8 декабря 2007 г. 19:26, спустя 1 день 21 час 43 минуты

    Функция unset используется прежде всего для высвобождения памяти, путем удаления переменной на стороне сервера.
    P.S. vasa_c сказал: "файлы с данными" - а ведь данные сессии не обязательно могут храниться в файлах. Ну, эт я так, к слову :)
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 8 декабря 2007 г. 20:31, спустя 1 час 4 минуты 51 секунду

    Где хранятся данные сессии вообще хрен знает.
    То есть теоретически во временном каталоге, указанном в php.ini в виде файлов с именами "sess_<SID>", содержащих сериализованную строки с правами настроенными так, что ничего не должно случиться.
    А где и как практически хранятся и когда действительно удаляются зависит от многих факторов, в первую очередь от прямизны рук админов (на которую, к сожалению, надеятся не приходится).
    На многих известных хостингах SIDы всех сайтов с сервера получаются совершенно спокойно, а иногда и данные, банальным заходом в /tmp.

    Несомненно можно потратить немного сил и написать свои обработчики сохранения/удаления данных и перенести их в БД.
    А можно потратить еще немного сил и вообще уйти от стандартного механизма и написать свой, избавившись от всех темных мест и сделать его под себя. Что я сделал и не печалюсь.
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 9 декабря 2007 г. 2:50, спустя 6 часов 19 минут 46 секунд

    Функция unset используется прежде всего для высвобождения памяти, путем удаления переменной на стороне сервера.

    Ну и я о чем! :)
    Но не только переменной…

    То есть теоретически во временном каталоге, указанном в php.ini в виде файлов с именами "sess_<SID>"…


    Не только в пхп.ини, если хостер не запретил - то мона поднастроить хтацкес. (зато часто хостер запрещает настраивать пхп.ини :)
    php_value session.save_path /ваша_директория/
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Yuk

    Сообщения: 2 Репутация: N Группа: Кто попало

    Spritz 30 января 2008 г. 17:22, спустя 52 дня 14 часов 31 минуту

    Подскажите как изменить код так, чтобы зарегестиророванные пользователи попадали на закрытую страницу, но не могли пользоваться "регистрацией", а пользователи с определенным ID (типа админы), попадали на другую страницу, где есть возможность регистрации новых людей. Очень нужно!
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 30 января 2008 г. 18:01, спустя 39 минут 35 секунд


    Подскажите как изменить код так, чтобы зарегестиророванные пользователи попадали на закрытую страницу, но не могли пользоваться "регистрацией", а пользователи с определенным ID (типа админы), попадали на другую страницу, где есть возможность регистрации новых людей. Очень нужно!

    Опишите подробнее, приведите "код".
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Yuk

    Сообщения: 2 Репутация: N Группа: Кто попало

    Spritz 30 января 2008 г. 18:07, спустя 5 минут 59 секунд

    ОК подробнее:

    Берем за основу весь код, который в первом посте. Там при удачной авторизации, пользователь попадает на закрытую страницу.
    А мне нужно чтобы проходила проверка еще и по ID в базе, и если ID=1 (например), то пользователь попадает на другую закрытую страницу, а если ID любой другой, то на обычную.

    На простой закрытой странице (для всех) у меня будет различная инфа для всех зарегестрированных, но не будет поля для регистрации новых.

    Регистрировать сможет только юзер с ID = 1, т.к. будет попадать на страницу с формой для регистрации.

    Вот так примерно.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!