Невозможно сделать ваш сайт безопасным на 100%, но вы можете замедлить действия злоумышленников или убедить их перейти на менее безопасный сайт, если вы охватите топ-10 owasp и обеспечите некоторую защиту транспорта.
Транспортная защита
HTTPS: либо используйте решение с уже настроенным https, например heroku или now.sh, либо используйте letsencrypt.org
Аутентификация - существует множество решений, и вам необходимо выяснить, насколько важны данные, которые вы пытаетесь защитить. JWT - хорошая отправная точка, поскольку она является самой простой и относительно безопасной.
Атаки OWASP.
Топ-10 OWASP здесь:
https://www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf
Вы можете покрыть большую часть списка, используя библиотеку, такую как JOI, https://www.npmjs.com/package/joi и настраивая схемы таким образом, чтобы разрешить ввод только в случае крайней необходимости. Используйте белые списки допустимых параметров, а не разрешайте любую строку.
Единственная мера предосторожности, которую я бы предпринял, - это использовать библиотечный шлем npm, https://www.npmjs.com/package/helmet. Это охватывает большинство точек XSS
Это, пожалуй, основные моменты, которые вам нужно охватить, которые будут удерживать большинство оппортунистических взломщиков