7 советов для новичков по обеспечению безопасности веб-сайта или веб-приложения

Пишу эти основные советы для новичков, которые пишут свой первый сайт & готовый к запуску. Если что-то пропущено или неправильно, вы можете помочь мне исправить это, прокомментировав. давайте начнем.

  1. Получите SSL-сертификат:

Это протокол HTTPS, который по умолчанию шифрует данные вашего сайта, когда они передаются от клиента (браузера) к серверу. Вы можете получить его бесплатно

используя Cloudflare.

  1. Всегда используйте .env или конфигурационный файл, как минимум:

Не сохраняйте строку подключения к БД или любые ключи API в файле кодирования. Сохраняйте их в файле .env (что такое файл env? https://nodejs.dev/learn/how-to-read-environment-variables-from-nodejs).

Обратите внимание, убедитесь, что по ошибке вы не включите этот файл в git или bitbucket или любое другое репо.

Для более высокого уровня безопасности используйте менеджер секретных ключей-хранилищ, как это делают Azure и AWS. Это добавляет еще один дополнительный уровень безопасности.

Для более подробной информации вы можете обратиться к https://aws.amazon.com/secrets-manager.

  1. Включите ограничение белых списков IP или доменов для базы данных/API:

Ограничение базы данных действительно полезно и важно. Просто укажите IP-адрес, например, локальной машины, на которой вы ведете разработку, IP-адрес вашего сервера и т.д.

Если у вас нет статических IP, как у меня, то в этом случае на помощь приходит белая книга доменов, поэтому просто укажите домен вашего сайта, и ваша БД будет обслуживать только этот сервисный запрос.

Это также может применяться к API и изображениям.

Примечание: не забывайте об этом, когда вы вызываете API со стороны клиента.

  1. Проверьте разрешение на чтение/запись в папках:

В некоторых проектах мы можем решить загрузить файлы в папку. Поэтому будьте внимательны, устанавливая такие разрешения на папки.

  1. Шифрование данных:

Я знаю, что это обычное дело, но все же стоит упомянуть, что мы должны шифровать конфиденциальные данные пользователей и по возможности стараться избегать такой информации, пока она действительно не понадобится в вашем приложении. Например, если вы используете stripe’s connect для маркетплейса и вам нужен SSN или Tax Id бизнеса, то просто храните их на stripe, а не в DB.

И если вы делаете какие-либо приложения для фин- или хелт-тех, сначала прочитайте требования к управлению и хранению данных. Я знаю, что это скучно, но это ОБЯЗАТЕЛЬНО.

  1. Валидация на стороне сервера:

В начале своей разработки я думал, что валидация на стороне клиента — это все, что нам нужно. Но вы можете просто проверить элемент & валидация на стороне клиента вашего приложения — это бум. Пропало. 🙂

Поэтому добавьте валидацию на стороне сервера и в функциях загрузки файлов не забудьте установить валидацию размера файла.

  1. Отключите поддержку iframe:

Если вашему сайту не нужна эта функциональность, просто используйте «add_header X-Frame-Options «SAMEORIGIN»;» и объявление в заголовках сервера. Это не позволит вашему сайту отображаться в Iframe на других сайтах.

Поделитесь своим мнением в комментариях 🙂

Оцените статью
devanswers.ru
Добавить комментарий