Когда реализовывать логику в интерфейсе или в фоновом режиме?

Так что за последние несколько недель я очень хорошо познакомился с Javascript MVC. Теперь я хочу узнать, как программировать бэкэнд (в частности, используя реализацию asp.net MVC). Я изучаю двигатель обзора бритвы и т. Д.

Один учебный блок, с которым я сталкиваюсь, читая примеры и учебные пособия, заключается в том, что я думаю про себя: "ну... я не могу просто сделать это во внешнем интерфейсе с javascriptMVC" для большей части логики, и если я нужно поговорить с базой данных, я могу просто использовать вызов JSON. Должно быть какое-то значение в бэкэнд-кодировании, но сейчас я этого не вижу (в надежде решить это).

1 ответ

Решение

Клиент всегда подвергается атаке, поэтому вы никогда не можете доверять коду.

Другими словами: любые связанные с безопасностью вещи, логика верификации и валидации принадлежат серверу, все аутентификационные и авторизационные вещи… и: когда вам нужно убедиться, что существует один надежный экземпляр для решения некоторых вопросов, например, о ценах, скидках, и так далее.

Есть поговорка в веб-программировании, и это: все вводные данные злые.

Поэтому с любым внешним интерфейсом (который в основном является вашим JavaScript-приложением) следует обращаться осторожно. Всегда вводите черный или белый список, кодируйте его, трансформируйте, проверяйте и т. Д.... и единственное место, где вы можете сделать это надежно, поскольку это единственное место, которое находится под ВАШИМ контролем, это сервер.

Более того: Никогда не помещайте в клиент секреты, такие как учетные данные (например, для вашей базы данных).

Надеюсь это поможет.

Другие вопросы по тегам