Облачные веб-приложения нужно разрабатывать надежными и защищенными. Задача эта непростая, но выполнимая. Если есть желание создать минимальный продукт, необходимо понимать, что разработка полезного и безопасного приложения займет несколько месяцев. В противном случае результатом станет не готовый сайт, а только его прототип.
Для рассмотрения предлагается список необходимых задач, решение которых обеспечит безопасность создаваемых проектов. Представитель веб-студии Френдли любезно поделился с нами подробностями, как происходит грамотное создание сайта в Киеве.
База данных
1.Если есть возможность, лучше использовать шифрование при хранении информации, которая идентифицирует пользователей, а также для хранения конфиденциальной информации, например, токены доступа, адреса электронной почты, платежные реквизиты – это даст возможность ограничивать запросы к базе данных до поиска при точном совпадении.
2.Если СУБД может поддерживать эконом-шифрование сохраненных данных, задействуйте его для защиты информации, которая находится на диске. Более того, нужно проверить, чтобы каждая резервная копия базы также была зашифрована.
3.Для доступа к информационной базе желательно использовать учетную запись каждого пользователя с минимумом привилегий. Не рекомендуется применять учетные записи суперпользователей и периодически нужно проверять систему на наличие учетных записей, которые не применяются или имеют довольно слабые пароли.
4.Для хранения, передачи данных учетных записей, токенов доступа к системе и другой секретной информации рекомендуется пользоваться хранилищем для ключей, которое рассчитано на такой сценарий работы. Не желательно хранить подобные данные, жестко задавая их в кодах приложения.
5.Система должна быть защищена от попыток взлома с помощью SQL-инъекции при использовании только SQL-запросов.
Особенности разработки
Чтобы осуществить правильную разработку сайтов в Киеве:
1.Необходимо обеспечить проверку элементов системы на уязвимость в начале каждого релиза. Имеется в виду все библиотеки, пакеты, рабочая среда. Идеально, если проверка будет автоматизирована процессом CI-CD.
2.Важно обезопасить компьютер разработчика и отнестись к этой задаче также внимательно, как и к вопросу о безопасности продакшн-сервера. Разработку нужно проводить защищенными, изолированными от потенциальной опасности внешней среды машинами.
При разработке безопасных сайтов следует также с особым вниманием подходить и к таким вопросам, как:
·аутентификация – пароли должны быть хэшироваными, использовать хорошо зарекомендованные элементы для создания входа в систему, применять систему многофакторной аутентификации;
·организовать защиту от DOS-атак;
·воспользоваться специальными средствами для защиты веб-трафика;
·каждый пользователь должен быть аутентифицирован и авторизирован до того, как он будет пользоваться API;
·необходимо проверять и преобразовывать все данные, которые вносятся пользователями;
·особое внимание нужно обратить на настройку облачной среды;
·при создании инфраструктуры лучше всего использовать Terraform;
·уделить особое внимание эксплуатации инфраструктуры, тестированию системы, обучению персонала и разработать план работы в нестандартной ситуации.
Каждый проект имеет свою уникальность, и его разработчики знают с какими именно угрозами нужно бороться, какую защиту нужно обеспечить чтобы в результате получился качественный «продукт».