AllesKlar
26.09.2017 - 12:44
Не красиво, конечно, но не смог удержаться (все имена изменены)

Наконец-то мой павадан закомитил свой первый тикет.
Тикет был прост:
- прописать роутинг
- прицепить к нему акшен
- в акшене удалит из сессии объект Юзер
заглянул с целью реврайта.... путь, по которому срабатывает акшен is:
https://site.com/user/logout?logout=logoutнаверное, чтобы наверняка

Еще э и валидацию полную провел, чтобы параметр logout существовал и был неизменно равен
значению 'logout'. А иначе, никакого логаута, работай дальше, никто тебя не отпускал
_____________
[продано копирайтерам]
Может это заделка на будущее.
Сейчас сравнивает с logout завтра будет сравнивать с токеном пользователя, продуман.
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Ну что ж, реализован антипаттерн Accidental complexity. =)
AllesKlar, можно я неудобный вопрос задам? Что делает logout в контексте (классе) user?
AllesKlar
26.09.2017 - 18:51
Цитата (Ron @ 26.09.2017 - 15:51) |
AllesKlar, можно я неудобный вопрос задам? Что делает logout в контексте (классе) user? |
да, конечно.
Это когда пользователь жмакает кнопочку "Auslogin", то веб-морда шлет запрос к backend, где прописан такой роутинг /user/logout, который забиндин с классом-екшеном UserAction, где есть метод logout(), который производит удаление Entity-класса User из сессии, чтобы потом мог другой человек за комп сесть и ввести свой логин и пароль, тогда он жмакает в вебморде на кнопочку "Einlogin", и она (вебморда) шлет запрос к бекенду, в котором прописан роутинг /user/login, который забиндин с классом-екшеном UserAction, где есть метод login(), который шлет запрос к api, которое читает данные из базы, и если в базе есть данные с подходящими паролем и логином, то api шлет бекенду токен, а бекенд пишет в сессию Entity-класс User, чтобы этот, который жмакнул кнопочку "Einlogin" смог посмотреть видосик на своем канале.
_____________
[продано копирайтерам]
waldicom
26.09.2017 - 22:14
Цитата (AllesKlar @ 26.09.2017 - 15:51) |
да, конечно.
|
Ну фсёёёё... Ща тебе расскажут, какой ты лох, потому что logout нужно было делать через фабрику, которая через dependency injection вызывала бы контекст синглтона, в котором уже через observer был бы вызван декоратор фасада прокси в медиаторе... Ну в общем ты понял... Думаю тебе от стыда лучше бы уйти в монастырь и забыть о программировании функций logout и login
_____________
Свои мозги еще никто не отменял.
Телепатов нету.
AllesKlar
26.09.2017 - 22:32
waldicomМне пофиг, я вообще наш api на Яве пишу, там EJB контейнер и баста.
С php попросили по старой памяти помочь, ну я и помог, как помню
RonА чО, плохой роутинг? Объявляем конкурс на лучший роутинг для функции logout !
_____________
[продано копирайтерам]
sergeiss
26.09.2017 - 23:37
Цитата (AllesKlar @ 26.09.2017 - 22:32) |
А чО, плохой роутинг? Объявляем конкурс на лучший роутинг для функции logout ! |
Я первый буду со своим ответом
Надо еще добавить указание ник-нейма и пароля. Если не указал - то никакого тебе логаута не будет! Можно даже "научную" базу подвести - чтобы никто меня не разлогинил, да чтобы и сам не разлогинился случайно
https://site.com/user/logout?logout=logout&username=USERNAMEА пароль отправить ПОСТом, чтобы не "светить"...
Ну так и чего, где приз выдают за победу в конкурсе?
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
AllesKlar
27.09.2017 - 01:19
Цитата (sergeiss @ 26.09.2017 - 21:37) |
https://site.com/user/logout?logout=logout&username=USERNAME |
Тогда уже добавить хост.
https://site.com/user/logout?logout=logout&host=mail.ru&username=USERNAME
Хотя не... так можно полинтернета удаленно разлогинить... опасно.
_____________
[продано копирайтерам]
killer8080
27.09.2017 - 09:15
Все про хихикали над джуном за избыточную валидацию, а реальной проблемы так никто и не увидел?
Там же чистая CSRF
Цитата (Arh @ 26.09.2017 - 13:27) |
Сейчас сравнивает с logout завтра будет сравнивать с токеном пользователя, продуман. |
да, только о безопасности нужно думать не завтра.
Про нарушение семантики http я вообще молчу, GET сплошь и рядом используют не по назначению
killer8080
Цитата |
да, только о безопасности нужно думать не завтра. |
Он просто ещё не знает о CSRF, но уже чувствует. Настоящий профи растёт)
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
killer8080
27.09.2017 - 10:08
Цитата (Arh @ 27.09.2017 - 09:59) |
Он просто ещё не знает о CSRF, но уже чувствует. Настоящий профи растёт) |
А "мастер Йода" на что? Должен наставить своего "подавана"
AllesKlar
27.09.2017 - 12:10
Цитата (killer8080 @ 27.09.2017 - 08:08) |
А "мастер Йода" на что? Должен наставить своего "подавана" |
Спокуха, запросы шлются из моей обертки, там в хеадерах все токены расставлены по феншую
_____________
[продано копирайтерам]
killer8080
27.09.2017 - 12:12
Цитата (AllesKlar @ 27.09.2017 - 12:10) |
Спокуха, запросы шлются из моей обертки, там в хеадерах все токены расставлены по феншую |
а толку, когда в урл его нет
Спустя
2 минуты, 28 секунд killer8080 написал(а):
AllesKlarобрати внимание как сделан логаут на этом форуме, когда то тут тоже эта дырка была
AllesKlar
27.09.2017 - 12:33
Цитата (killer8080 @ 27.09.2017 - 10:12) |
а толку, когда в урл его нет |
А зачем он в урл?
POST mysite.com/logout
Header X-CSRF-Token: yEbgU6m7OienYT7zBp9p7b0xBIlTWh49iFD6ncJ1vakwyh6dSZm80wVBzKUAjxMf
Токен одноразовый, висит в сессии на сервере.
_____________
[продано копирайтерам]
killer8080
27.09.2017 - 12:40
AllesKlarпост запрос это от бэкенда к апи? А от клиента к php гет?
Может я не правильно понял из первого поста