если вы используете ASP.NET, зачем хранить билет в куки? Просто поместите это в переменную сеанса, позвольте ASP обрабатывать куки. Таким образом, никакая жизненно важная информация не сохраняется в куки, только в памяти сервера.
Первый уровень, который видит клиент, должен отображаться только и позволять пользователю пытаться изменить то, к чему у него есть доступ.
Кто-то может найти дыру в петле на первом уровне, поэтому второй уровень должен ВСЕГДА проверять все запросы, прежде чем перенаправлять запрос на третий уровень. Третий уровень - это только ваши данные, и он должен иметь логические ограничения, чтобы гарантировать, что данные остаются чистыми, но не в плане безопасности.
Единственный способ убедиться, что ваш 2-й и 3-й уровни "безопасны", - это разместить их на разных серверах. Каждый раз, когда вы не доверяете клиенту или безопасность является приоритетной, 2-й и 3-й уровни НЕ должны быть в клиентском приложении.
Как правило, 1-й уровень можно взломать, поэтому вы также проверяете 2-й уровень. Если 2-й и 3-й уровни находятся на стороне клиента, они также могут быть взломаны.