В основном я создаю бессерверное следующее. js приложение с mongodb.
Идея 1: React уже предотвращает большую часть XSS, поэтому я должен просто хранить информацию для входа в систему в веб-хранилище? таким образом мне не нужно беспокоиться о CSRF.
Идея 2: если я использую аутентификацию на основе httpOnly cook ie, поскольку httpOnly и sameorigin уже предотвращают XSS (и некоторые CSRF), я могу продолжить свой дизайн без забот? Как вы думаете, этого достаточно для начинающего сайта электронной коммерции?
Идея 3. Добавьте токен CSRF в Cook ie на основе аутентификации
- пользователь вошел в систему, в / api / login я проверяю имя пользователя / пароль, затем создаю повар ie с токеном CSRF в нем, а также res.end (CSRF). после получения этого мы сохраняем CSRF в useContext, чтобы сделать его доступным для всех компонентов.
- поэтому всякий раз, когда я получаю с помощью POST, я прикрепляю этот глобальный токен CSRF к req.body, наконец, в / api / мы сравниваем это CSRF в req.body с CSRF в поваре ie.
есть ли лучшие идеи для бессерверного приложения? или я что-то упускаю? что ты порекомендуешь ? ОБНОВЛЕНИЕ: я знаю, что доступен nextAuth. js, но в обсуждении на github говорится: «Это проблема с next-auth. Это репо не поддерживается и не рекомендуется нами ...»
идея 4: используйте Встроенный фреймворк CSRF, например express. js ....
PS Должен ли я сначала заполнить веб-сайт, прежде чем беспокоиться о безопасности? я устал делать это ...