Подписанные куки в Django
Обычную куку пользователь может
подделать в браузере: открыл
инструменты разработчика - и
подставил чужой user_id.
Подписанная кука хранит значение
вместе с подписью на
SECRET_KEY проекта. Без
ключа подпись не повторить -
подделку сервер заметит.
Важно: подпись не шифрует данные. Значение в браузере все еще видно. Защита только от незаметной подмены.
Установка - метод
set_signed_cookie
у ответа (те же max_age,
httponly, secure,
path, что у
set_cookie):
from django.http import HttpResponse
def set_token(request):
response = HttpResponse('ok')
response.set_signed_cookie('user_id', '42')
return response
Установите подписанную куку
token со значением
'abc'.
Расскажите, чем
set_signed_cookie
отличается от обычного
set_cookie.