Я предпочитаю делать вещи, с которыми пользователь не может взаимодействовать, полностью невидимыми, когда это возможно. Вы не можете взломать то, что не видите (и я не имею в виду скрытое на странице, я имею в виду, что сервер не генерирует код для вещей, которые не вошли в систему, пользователи не могут видеть).
Тем не менее, предполагая, что вам нужно оставить элементы управления видимыми, но отключенными, я бы добавил код как во внешний, так и во внутренний компоненты для выполнения проверок. Код проверки внешнего интерфейса подвержен взлому, но приятно иметь возможность быстрой обратной связи для пользователей, использующих систему, - однако сервер должен быть вашим настоящим отказоустойчивым местом, чтобы убедиться, что все соответствует ожиданиям. и сделайте окончательную проверку перед внесением изменений.
К сожалению, это иногда означает, что вам нужно дублировать усилия, но для действительно важных вещей это того стоит.