Вечер добрый!
Имеется следующая схема работы: 1. api, разработанное на laravel 2. веб-морда на html+js
Все действия выполняются запросами к api. Пользователь вводит логин-пароль, получает api_token, который записывается в cookie и все запросы уже выполняются уже с использованием api_token.
api_token постоянный. Вопрос: насколько небезопасна эта система и что можно сделать, чтобы обезопасить её от вредоносных действий? Например, от кражи токена. Если иметь принять, что api_token будет постоянный - какие подводные камни? Как лучше проверять по кукам, "правильный" ли пользователь выполняет действия?
Нужно ли делать временный токен?
Не обязательно все ответы, достаточно наводящих слов, чего почитать. Спасибо!
Любая безопасность начинается с представления о том, от чего мы защищаемся.
К примеру, на компьютере пользователя установлен троян, который может эти куки украсть. Но при таком подходе украсть можно и логин с паролем. Зато можно дать пользователю бумажку и научить его генерить одноразовые пароли. Альтернативно, отсылаем пароли с голубями. Но надо помнить, что голубя можно перехватить, равно как и смс-сообщение, бумажка будет безопаснее. Но бумажку можно выкрасть.
Если на сайте нету https, то куки видит каждый, кому не лень. Если при этом нет HSTS, то рано или поздно будет палево. Это подсказывает, что безопасность - комплексная штука и пренебрегать ей не следует. Зато можно и теперь модно хранить какой-то ключ в LocalStorage, которым подписывать каждый запрос. Осталось понять, как эти ключи генерить и валидировать.
Куку проще украсть, чем логин/пароль. Поэтому токены желательно делать временными. Но чтобы не раздражать пользователя вводом логина и пароля: нужно продумать, как её актуализировать.
Безопасность тут больше упирается не в то, делать ли временной куку, внимание следует уделить следующим вещам:
Можно ещё много чего привести в пример - почти любая дыра открывает возможность получения доступа к пользователю.
Но главное надо помнить - если вы разрабатываете проект не для хранения секретных документов ФСБ, и не огромную высоконагруженную соц-сеть: то возможно врядли кому-то будет интересно взламывать ваших пользователей. Если же боитесь за взлом админа - просто ограничьте админство по IP, например, или введите двойную авторизацию только админу. Всякая безопасность - в меру.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
вот что выдает: string(4) "2017" string(4) "1989" int(-1883)
На сайте есть форма с selectамиВ зависимости от того, что выбрано в селектах, происходит автоматическое заполнение других полей формы
Здравствуйте! Понимаю, что многомерных ассоциативный массивов как таковых в js нетПроблема возникла у меня в следующем