Когда реализовывать логику в интерфейсе или в фоновом режиме?
Так что за последние несколько недель я очень хорошо познакомился с Javascript MVC. Теперь я хочу узнать, как программировать бэкэнд (в частности, используя реализацию asp.net MVC). Я изучаю двигатель обзора бритвы и т. Д.
Один учебный блок, с которым я сталкиваюсь, читая примеры и учебные пособия, заключается в том, что я думаю про себя: "ну... я не могу просто сделать это во внешнем интерфейсе с javascriptMVC" для большей части логики, и если я нужно поговорить с базой данных, я могу просто использовать вызов JSON. Должно быть какое-то значение в бэкэнд-кодировании, но сейчас я этого не вижу (в надежде решить это).
1 ответ
Клиент всегда подвергается атаке, поэтому вы никогда не можете доверять коду.
Другими словами: любые связанные с безопасностью вещи, логика верификации и валидации принадлежат серверу, все аутентификационные и авторизационные вещи… и: когда вам нужно убедиться, что существует один надежный экземпляр для решения некоторых вопросов, например, о ценах, скидках, и так далее.
Есть поговорка в веб-программировании, и это: все вводные данные злые.
Поэтому с любым внешним интерфейсом (который в основном является вашим JavaScript-приложением) следует обращаться осторожно. Всегда вводите черный или белый список, кодируйте его, трансформируйте, проверяйте и т. Д.... и единственное место, где вы можете сделать это надежно, поскольку это единственное место, которое находится под ВАШИМ контролем, это сервер.
Более того: Никогда не помещайте в клиент секреты, такие как учетные данные (например, для вашей базы данных).
Надеюсь это поможет.