Это демонстрация аутентификации на основе состояния и токена JSON Web Token с защитой от CSRF, используя Spring Security, Spring Boot и Vue js.
Компонент | Технология |
---|---|
Передний конец | Vue.js 2 |
Задний конец (REST) | SpringBoot (Java) |
Безопасность | На основе токена (Spring Security, JJWT, CSRF) |
Инструменты сборки клиента | vue-cli, Webpack, npm |
Инструменты сборки сервера | Maven |
Среда выполнения: Java11, Node 12, Maven3
Клонировать этот проект
git clone https://github.com/PuZhiweizuishuai/SpringSecurity-JWT-Vue-Deom.git
Запустить сервер заднего плана
cd spring-security-jwt
mvn clean package
Затем
java -jar target/security-0.0.1-SNAPSHOT.jar
Запустить сервер переднего плана
cd vue
npm install
Затем
npm run serve
Наконец
Открыть
http://127.0.0.1:8080
Для генерации и проверки JWT я использую JJWT. JJWT — это самодостаточная библиотека на Java, предоставляющая создание и проверку JSON Web Tokens.### Стратегия хранения JWT
У нас есть несколько вариантов мест для хранения токена:
Она доступна через JavaScript на том же домене. Это значит, что любой JavaScript, работающий на вашем сайте, будет иметь доступ к хранилищу веб-приложений, и поэтому может быть уязвимым к атакам типа Cross-Site Scripting (XSS).
Поэтому, чтобы предотвратить XSS, я храню JWT токен в Http-Only/Secure cookie. Cookies, когда используются вместе с флагом HttpOnly cookie, недоступны через JavaScript и защищены от XSS.
Однако, cookies уязвимы к другой форме атаки — cross-site request forgery (CSRF). CSRF-атаки происходят, когда злонамеренный сайт, электронное письмо или блог заставляет браузер пользователя выполнить незапрошенное действие на сайте, на котором пользователь уже авторизован.
Чтобы защититься от CSRF-атак, нам следует создать дополнительный cookie, который можно считывать с помощью JavaScript, называемый XSRF-TOKEN. Этот cookie должен создаваться при входе пользователя и содержать случайную и непредсказуемую строку. Каждый раз, когда JavaScript-приложение хочет отправить запрос, ему следует считывать этот токен и передавать его в специальном HTTP-заголовке.
Код распространяется под лицензией MIT.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )