Добрый день, уважаемые коллеги!
Есть корпоративное (можно сказать, "интранет") ASP.NET MVC приложение. Данные хранятся в локальной БД на Firebird. Это приложение поставляется "в массы". Есть системные администраторы, которые разворачивают это приложение на своих серверах (т.е. развертывание выполняется нецентрализованно). В MVC-приложении вся логика, как известно, находится в *.dll. Но Views открыта для просмотра и редактирования, и при желании, какой-нибудь "ушлый" администратор может либо поломать что-либо во View, либо написать какой-нибудь JS-код (или изменить существующий), который будет работать "в обход" основной логики приложения (изменить поведение каких-либо кнопок, например).
Вопрос следующий: каким образом можно защитить всё приложение таким образом, чтобы "ушлые" пользователи не могли изменить логику работы приложения или его составных частей (Views, JS-кода)?
Возможные варианты:
- можно обфусцировать всё, что можно, но как тогда это сделать так, чтобы и Views рендерились нормально, и JS-код успешно выполнялся?
- можно шифровать всё содержимое Views и JS-кода, но ключ где тогда хранить? (ключ, впринципе, можно хранить и в локальной БД - особо страшного тут ничего не будет, т.к. логика по шифрованию/дешифрованию будет "зашита" в *.dll, которые, насколько я понимаю, достаточно трудно декомпилировать - или я ошибаюсь?)
Примечание: в локальной БД на Firebird данные хранятся в открытом виде, и по сути, ничего не мешает их оттуда считывать. В принципе, это не особо страшно, что эти данные могут увидеть сисадмины - главное, чтобы нельзя было "прочитать" и изменить логику работы и поведения всего приложения.