- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic

В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Озадачился проблемой безопасности для пользователей на сайте. С фронтом дела мало имею, поэтому хотелось бы послушать, как вы организуете работу пользователей на сайте.
Расскажу, как это планирую сделать я.
Аутентикация для начала самая простая - логин/пароль. Пароль хранится в базе в хэшированном виде, тут вроде все надежно и просто. При необходимости в дальнейшем можно прикрутить капчу, third-party, csrf-token etc. Пока это за рамками вопроса. Интересует дальнейшая авторизация.
Когда пользователь залогинен, для него создается jwt-token, закрытый алгоритмом RSA256 и который содержит необходимые данные/права пользователя.
Есть открытые страницы, которые доступны без токена. А есть те, которые можно посмотреть исключительно имея права. Токен лежит в куках и при запросе определенных страниц каждый раз проверяются права пользователя через декодер и страница загрузится, только если у юзера есть на это права.
Главный вопрос - насктолько это надежно? В случае работы апишки - все в порядке, там без токена не будет доступа к данным. А вот на фронте как? Можно ли как то подменить токен и получить данные не своего пользователя? На что обращать внимание?
Какие способы реализованы у вас?
привяжи авторизацию к ip.
Хорошая идея, спасибо.
срок жизни сессии еще, сутки и протухает пусть.
Это само собой, даже меньше у меня будет. Активная сессия - не более получаса. Посмотрим
могу через пару дней дать доступ, можете попробовать поломать, может найдете дыры)))
так а денег то сколько дашь? уважающие себя хакеры бесплатно не работают.
Кстати, если тут есть уважающие себя хакеры, могу через пару дней дать доступ, можете попробовать поломать, может найдете дыры)))
Если сайт под РФ, "взломает" его закон, что авторизоваться и регистрироваться можно только через российские сервисы (я.почта, госуслуги).
В 2024-м создавать сайты с регистрацией - так себе идея.
Хорошая идея, спасибо.
Плохая идея, так делают только начинающие, которые потом сталкиваются с ограничением доступа к сайту с разных устройств..
Это само собой, даже меньше у меня будет.
Это тоже плохо, вы заставляете пользователя постоянно авторизоваться..
Кстати, если тут есть уважающие себя хакеры, могу через пару дней дать доступ, можете попробовать поломать, может найдете дыры)))
На уязвимости легко и самому проверить, есть несколько лазеек через которые хакеры получают доступ(XSS уязвимость, SQL-injection, CSRF, Code Injection), но они должны быть учтены на стадии разработки.
Когда пользователь залогинен, для него создается jwt-token, закрытый алгоритмом RSA256 и который содержит необходимые данные/права пользователя.
Есть открытые страницы, которые доступны без токена. А есть те, которые можно посмотреть исключительно имея права. Токен лежит в куках и при запросе определенных страниц каждый раз проверяются права пользователя через декодер и страница загрузится, только если у юзера есть на это права.
Главный вопрос - насктолько это надежно?
Не надёжно, есть способы получить куки. Всю информацию лучше хранить в сессии на сервере, а в куках только хэш токена для создания новой сессии, чтобы при новом заходе человек постоянно не авторизовался.
который содержит необходимые данные/права пользователя
Даже при использовании JWT обычно нет необходимости хранить данные прямо в токене. Достаточно идентификатора пользователя. Если не хотите его "опубличивать" (здесь речь уже не про JWT), можете "солить" в индивидуальном порядке и динамически менять соль между сеансами.
С IP могут быть определенные проблемы. Иногда встречаются провайдеры, которые могут менять IP в течение одного (по крайней мере с точки зрения пользователя) Интернет-сеанса. Не знаю, с чем это связано. Плохая связь или что-то другое.
Это само собой, даже меньше у меня будет. Активная сессия - не более получаса.
Вот это хорошо. В основном так и защищаются. Конечно, токен должен быть достаточно длинным.
так делают только начинающие, которые потом сталкиваются с ограничением доступа к сайту с разных устройств.
Проблема может быть даже при доступе с одного устройства. Если бы все было так просто, можно было хранить различающиеся IP для каждого устройства пользователя, с которого он входил.
Это тоже плохо, вы заставляете пользователя постоянно авторизоваться.
Время сеанса автоматически продлевается при каждом запросе или при приближении к expired. Если пользователь отошел попить чайку, это его проблемы. Все делается для безопасности его данных, финансовых средств и т.п.
Можно использовать код "возобновления сеанса". Как с недавних пор делает Сбербанк.
Плохая идея, так делают только начинающие, которые потом сталкиваются с ограничением доступа к сайту с разных устройств..
Перечитай внимательно. IP проверяется во время создания токена и живет ровно столько же сколько и сессия. Даже получив токен, ты не пройдешь верификацию с другого устройства. А зарегистрированный пользователь может войти откуда угодно. Если ты дома войдешь через домашний инет - окей, если тут же захочешь войти с мобилки - для тебя на устройстве создастся новый токен. Подумаю кстати о хранении сессий, чтобы пользователь мог контролировать входы в свой акк.
Это тоже плохо, вы заставляете пользователя постоянно авторизоваться..
Это основы безопасности. Даже для минимума сенситив информации, которая может храниться. Например переписка. Человек отошел от компа, забыв вылогиниться, кто-то пришел, и увидел открытый аккаунт. На одном из проектов у нас было служебное требование - токен живет не более 15 минут. Тут приходится лавировать - удобство или безопасность.
XSS уязвимость, SQL-injection, CSRF, Code Injection
Я немного не про это. Естественно будет и CORS и CSRF токен на фронте. Понятно, что иньекцию в базу сделать невозможно изначально - первое что проверялось. Никакой SQL/js скрипт не выполнится, если попытаться закинуть его в форму. JS обфусцируется. База - за 7 замками. К ней в принципе не будет доступа извне, сейчас, конечно открыта для девелопинга, но даже сейчас ты в жизни в нее не войдешь - доступ через PEM-сертификат.
Не надёжно, есть способы получить куки. Всю информацию лучше хранить в сессии на сервере, а в куках только хэш токена для создания новой сессии, чтобы при новом заходе человек постоянно не авторизовался.
Вот об этом можем поподробнее поговорить. Как я уже говорил - в этом я не силен. Да, токен лежит в куках, его можно увидеть. И что это даст? как ты этим можешь воспользоваться? Там есть только userID/username и права юзера. Что это тебе даст?
Про хеш, извини не понял, можешь обьяснить?
так а денег то сколько дашь? уважающие себя хакеры бесплатно не работают.
А сколько хочешь? Можем договориться, если ты такой меркантильный))) Находишь дыру - плачу) Причем чем быстрее - тем больше)
Если сайт под РФ
Не планируется под РФ вообще. Под русскоязычную аудиторию - да, в том числе.
В 2024-м создавать сайты с регистрацией - так себе идея.
В очередной раз - я не занимаюсь сайтами. Это сервис по поиску клиентов. Веб-сервис, андроид и айфон приложения. Поэтому сразу и пишется через АПИ, на Пайтон и Java