• Правильно ли я понял, как работает токен?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Я мимо проходил и, вроде, все верно, кроме:
    С мобильного приложения я отправляю логин и пароль на сервер api.
    Никогда! Слышишь, Карл?! НИКОГДА НЕ ПЕРЕСЫЛАЙ данные авторизации на сервер БЕЗ ПРЕДВАРИТЕЛЬНОГО ХЕШИРОВАНИЯ на стороне клиента серверным ключом.

    1. Данные на клиенте: hash(USER1:PASSWORD:SKEY:RANDOM),
    2. Пересылаю на сервер: ab1e37ab50c61d8c80fb5cb4b1e3122f:RANDOM
    3. Ищу на сервере совпадение:
    ab1e37ab50c61d8c80fb5cb4b1e3122f===hash(USER:PASSWORD:SKEY:RANDOM) и получаю учётку пользователя, если все верно.

    А так, да! Спасибо, Сергей Протько - все довольно четко и верно написано!
    Ответ написан
    42 комментария
  • Правильно ли я понял, как работает токен?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Да. Все верно.

    Единственное что добавлю, пересылать токен лучше в заголовках. Причем желательно, поскольку механизм аутентификации нестандартный, в заголовке X-Authorization. Если вы решите хранить токен в куках и передавать его, это желательно должны быть http-only куки (хотя в случае JWT не обязательно) и на сервере должна быть защита от CSRF атак.

    Так же поскольку у нас по сети гуляют по сути креденшелы, важно использовать SSL. Благо сегодня есть lets-encrypt что бы бесплатно получить сертификаты.

    И последнее, что бы обезопасить себя еще, используйте refresh-токены. То есть наш уникальный токен который гуляет в каждом запросе будет иметь ограничение по времени жизни (скажем 5 минут) и для его обновления мы будем использовать refresh-токен. При получении refresh токена клиенту уходит новая пара токен + refresh-токен.

    Таким образом у злоумышленника который перехватил токен пользователя будет окно всего в 5 минут что бы что-то сделать.
    Ответ написан
    13 комментариев
  • Как запустить Telegram бота HellowBot?

    pepsi-man
    @pepsi-man Автор вопроса
    Тыж программист!
    Ура! Вопрос решен!
    Проблема была в неправильной установке сертификата.
    Помогла статья habrahabr.ru/post/270273 и онлайн сервис https://www.ssllabs.com/ssltest/index.html

    Вкратце, в файле /etc/httpd/conf.d/ssl.conf были исправлены строки на:
    SSLProtocol TLSv1.2
    SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA:!RC4
    SSLCertificateFile /etc/letsencrypt/live/mydomain.tk/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.tk/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/mydomain.tk/chain.pem
    SSLCACertificateFile /etc/letsencrypt/live/mydomain.tk/fullchain.pem

    После чего ssllabs.com показал рейтинг A- и бот тут же заработал!

    Жаль, что Telegram ни как не сообщает об этой ошибке и в руководстве я этого не нашел. Хотя могли бы через своего бота @FatherBot сообщать владельцу о проблемах...
    Ответ написан
    2 комментария
  • Как извлечь данные о сущности из текста?

    Я думаю, что нужны следующие инструменты для разбора текста:
    1. лингвистический анализ и обработка текста, Расширенный курс обработки естественного языка
    2. генератор парсера для текста естественного языка
    3. составление словаря атрибутов: имена собственные, валюта, города. По заданным классам атрибутов текста выяснять порядок для разбора текста. К примеру, в заданном предложении определяется наличие действия ("куплю"/"продам"/"обменяю"), затем "состояние", контакт ("звонить" и многозначный номер "79871233445", местного формата), имя "Алексей", цифры "7000" + валюта "рублей". Наименование - самое сложное для определения и потому, возможно, имеет смысл определять этот атрибут последним.
    Ответ написан
    2 комментария