Пишу свой велосипед, который будет из себя представлять менеджер паролей для входа на сайты (да, знаю, что в браузерах есть куча готовых решений, но хочу разобраться в некоторых технологиях на практике). На данный момент используя вот эти материалы: первый, второй.
Мне удалось сделать так, что я получаю от сайтов страницы, которые видят авторизированные пользователи, но когда я рендерю эту страницу в браузер или просто отправляю в браузер информацию, полученную из заголовков после авторизации через cURL
, и еще раз вызываю страницу с нужного сайта, то в браузере меня отправляет на страницу логина. Собственно вопрос: можно ли как-то передать в браузер куки, полученные через cURL
при авторизации, так, чтобы потом запрос на нужный ресурс не приводил к инициировании новой сессии?
Сейчас делаю вот так:
foreach ($cookies as $name => $value) {
setcookie ($name, $value, 0, '/', 'site.domen.com');
}
Но в браузере я не вижу отправки нужных кук на сайт. Подскажите, кто хорошо знаком с этим вопросом, что я делаю не правильно? Или такое запрещено настройками безопастности? На бек-энде использую РНР, но если есть рабочие примеры на других языках, то думаю, что разберусь)))
Куки это просто заголовок запроса, который создатели http-клиентов (браузеров, например) договорились оправлять на сервер в определённых случаях. Один из способов (популярный, но не единственный) аутентификации пользователя на сайте заключается в генерации специального уникального секретного токена и передача его в заголовке Set-Cookie
. Браузер, получив такой заголовок, сохранит токен и будет добавлять его к каждому следующему запросу. Так как токен уникальный, то сервер сможет аутентифицировать по нему пользователя.
Если немного поразмышлять, то станет понятно, что такую куку не хотелось бы показывать кому-то. Ведь если кто-нибудь украдёт секретный токен, то сможет делать запросы от имени пользователя-владельца куки (например рассылать сообщения его друзьям с просьбой скинуть денег на карту). Именно поэтому браузеры ограничивают доступ к кукам. И вы не можете получить доступ к кукам других сайтов.
Соответственно, чтобы реализовать то, что вы задумали, вам надо использовать MITM-атаку, но это уже не менеджер паролей. Вообще вся ваша затея выглядит очень странно. Менеджер паролей не осуществляет вход на сайты, он хранит пароли. Думаю если вы разберётесь в том, как это работает, то откажетесь от этой затеи.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Отправляю файлы (избражение, изображние в архиве) на сервер POST-запросомФайл приходит(данные появляются в $_FILES)
Всем приветЗадался вопросом, как правильно отдавать пользователю на загрузку большой файл? Использую Laravel, при стандартном подходе response()->download()...
У меня есть 3 сущности: Customer, User и VerificationEmail