Привет сообществу! Я хотел бы знать, имеет ли смысл подписывать файлы cookie хешем, чтобы проверить их на целостность (не изменение значений пользователем самостоятельно)? Прежде всего, я понимаю, что я не должен хранить какие-либо чувствительные данные в файлах cookie и вместо этого использовать сессии. Это именно то, что я делаю. Но все же мне не нравится, когда пользователь может модифицировать даже не столь важные данные.
Сейчас использую такую схему: предположим, у нас есть файлы cookie для:
- PHPSESSID
- site_lang
- recently_viewed
Теперь, когда я обновляю(добавляю/удаляю/редактирую) значение cookie, я считаю хэш для cookie с ключом, скажем,
cookie_hash и значением например
md5(serialize ($ _COOKIE(без PHPSESSID)) + $secret) ключ PHPSESSID для вычисления и проверки хэша не использую, потому что он не управляется классом CookieManager (допустим имя класса для управления куками) и значение может обновиться в любой момент для предотвращения session fixation...
Меня беспокоит только одно: что если какой-либо сторонний пакет\класс\библиотека установит какую-то куку, минуя мой CookieManager, конечно. он ведь нарушит хеш. Стоит ли вообще так делать?
Возможно CookieManager следует вести учет установленных им значений и считать\проверять хеш только для них?