Вообще, такая практика существует уже очень давно. Моя мама лет несколько назад получала такую субсидию. Такого размера субсидия именно в Москве. В остальных регионах России программа та же, только деньги меньше. Тут упоминается про 58 тысяч в Пермском крае.
Существуют паттерны проектирования: server session state и client session state… Сессии в PHP просто реализуют первый. Никто не мешает вам сделать свою реализацию.
Там проблема, что они работают в разных языках одновременно(PHP, c, perl). А хранить сессии так, чтобы они были легко доступны из любого языка не получилось. Поэтому решили хранить всё в куках. Но потом появилась мысль в том что куки всё же могут изменить и стали думать над защитой. И придумали хранить контрольную сумму, которую можно получить из любого языка. И всё же научились получать контрольную сумму из разных языков, а эта сумма является тоже данными сессии… а класть данные туда где хранится контрольная сумма ещё не догадались.
Погодите. Вы высказали мысль. В качестве доказательства вы привели пример, используя его как аргумент в пользу своего довода.
Я, в свою очередь, пытаюсь показать, что ваш пример как раз и иллюстрирует наш довод: «серверу всё равно как куки попали». Поясню почему я так думаю:
Что сделает сервер, если получит куки, которые сформированы ява скриптом? — Проверит их валидность.
Что сделает сервер, если получит куки, которые пользователь отправил вручную? — Проверит их валидность.
Что сделат сервер, если получит куки, которые отправлял сам до этого?
— Проверит из валидность.
Т.е. как бы куки не были сформированы они будут обработаны одинаково.
Может ли сервер различить то как были установлены куки (вручную, ява скриптом или действительно пришли с сервера)? — Нет.
Таким образом Ваш пример и показывает, что «Серверу всё равно как были сформированы куки».
И ещё вопрос:
Я злостный извращенец. Мне открылась страница, я удалил все куки, потом написал скрипт, которые создаёт эти же куки с такими же значениями. Затем я отправил всё на сервер. Приложение просто проверит контрольную сумму как и всегда или будет вести себя по-другому?
Хорошо.
Покажите мне разницу между проведениями вашего приложения, при получении запроса от пользователя, в следующих случаях:
а. у кук пользователя флаг httponly = true
б. у кук пользователя флаг httponly = false
Установка данного флага, грубо говоря, делается «для красоты» (или для того, чтобы у пользователя не смогли украсть эти куки). Т.е. установка такого флага сама по себе является указателем для браузера и только (и то не для всех — по словам документации).
Такое поведение сравнимо с тем, что мы для текстового поля установили максимальную длину в 10 символов(/>). Да, браузер не даст вводить больше, но при получении данных с браузера серверу будет всё равно какой он там атрибут отослал в тэге. Если, конечно, не будет дополнительных проверок, которые и будут фактически ограничивать что-то.
Кстати, по поводу дополнительных проверок. Вы сделали хранение данных сессии в куках, но, чтобы проверить, что они те, что были Вы храните их в сессии.…
P.S. опция httponly — не для того, чтобы куку не могли изменить, а скорее для того, чтобы куку не могли украсть.
В точку Ваше приложение не занимается проверкой того как были сформированы куки, оно проверяет те ли эти куки.
Я, в свою очередь, пытаюсь показать, что ваш пример как раз и иллюстрирует наш довод: «серверу всё равно как куки попали». Поясню почему я так думаю:
Что сделает сервер, если получит куки, которые сформированы ява скриптом? — Проверит их валидность.
Что сделает сервер, если получит куки, которые пользователь отправил вручную? — Проверит их валидность.
Что сделат сервер, если получит куки, которые отправлял сам до этого?
— Проверит из валидность.
Т.е. как бы куки не были сформированы они будут обработаны одинаково.
Может ли сервер различить то как были установлены куки (вручную, ява скриптом или действительно пришли с сервера)? — Нет.
Таким образом Ваш пример и показывает, что «Серверу всё равно как были сформированы куки».
Я злостный извращенец. Мне открылась страница, я удалил все куки, потом написал скрипт, которые создаёт эти же куки с такими же значениями. Затем я отправил всё на сервер. Приложение просто проверит контрольную сумму как и всегда или будет вести себя по-другому?
Покажите мне разницу между проведениями вашего приложения, при получении запроса от пользователя, в следующих случаях:
а. у кук пользователя флаг httponly = true
б. у кук пользователя флаг httponly = false
Такое поведение сравнимо с тем, что мы для текстового поля установили максимальную длину в 10 символов(/>). Да, браузер не даст вводить больше, но при получении данных с браузера серверу будет всё равно какой он там атрибут отослал в тэге. Если, конечно, не будет дополнительных проверок, которые и будут фактически ограничивать что-то.
Кстати, по поводу дополнительных проверок. Вы сделали хранение данных сессии в куках, но, чтобы проверить, что они те, что были Вы храните их в сессии.…
P.S. опция httponly — не для того, чтобы куку не могли изменить, а скорее для того, чтобы куку не могли украсть.