Чтобы ответить на ваш вопрос:
Вы не можете определить, был ли ваш файл cookie украден или скопирован. После того, как он покидает ваш сервер, вы не представляете, что с ним произошло - как вы могли?
Однако вы можете определить, не были ли изменены исходные данные cookie, которые вы использовали, с помощью алгоритма безопасного хеширования, например SHA-1 .
Алгоритм SHA-1 генерирует хэш-сигнатуру, которая изменяется (или статистически с большой вероятностью изменится), если изменяются данные, к которым он применяется. Поскольку вы генерируете хэш, используя не только данные, но и секрет Соль , , только вы можете сгенерировать правильную сигнатуру хеша для данного фрагмента данных. Если кто-то изменит ваши данные, он не сможет внести соответствующее изменение в хэш без значения Salt. Конечно, вы проверите все данные, которые возвращаются, чтобы убедиться, что хэш-подпись, которая идет с ней, является правильной. Это требует, чтобы вы добавили хеш-подпись в конец данных или какой-то аналогичный механизм для сохранения данных и хеш-подписи вместе.
Имейте в виду, что значение Соли необходимо держать в секрете.
Как указал @Rook, лучше с точки зрения безопасности вообще избегать проблемы, вообще не сохраняя ваши данные в cookie-файле. Но мы не все пишем приложения для интернет-банкинга, и хэш-подпись может быть адекватной вашим потребностям.
Стоило бы взглянуть на ресурсы, доступные по адресу OWSAP . OWASP имеет ряд Top 10 приоритетных списков наиболее распространенных уязвимостей безопасности веб-приложений. Убедитесь, что вы знакомы с ними, чтобы не допускать ошибок, которые делали тысячи других.