Якщо ви хочете захистити свою програму, тоді вам слід обов'язково почати використовувати HTTPS замість HTTP , це забезпечує створення захищеного каналу між вами та користувачами, що запобіжить нюхати дані, що надсилаються назад і назад користувачам, і допоможе зберегти дані обмінялися конфіденційними.
Ви можете використовувати JWTs (JSON Web Tokens) для захисту API RESTful , це має багато переваг у порівнянні з сеансами на сервері, переваги в основному:
1- Більш масштабований, оскільки ваші сервери API не повинні підтримувати сеанси для кожного користувача (що може бути великим тягарем, коли у вас багато сеансів)
2- JWT є автономними та мають претензії, які визначають роль користувача, наприклад, & що він може отримати та видав на дату та дату закінчення терміну дії (після чого JWT не буде дійсним)
3- Легше керувати через балансири завантаження і якщо у вас є кілька серверів API, оскільки вам не доведеться ділитися даними сеансу і не налаштовувати сервер для маршрутизації сеансу на один і той же сервер, коли запит із JWT потрапляє на будь-який сервер, його можна автентифікувати & уповноважений
4- Менший тиск на вашу БД, а також вам не доведеться постійно зберігати та отримувати ідентифікатори та дані сеансу для кожного запиту
5- JWT не можуть бути підроблені, якщо ви використовуєте сильний ключ для підписання JWT, тому ви можете довіряти претензії в JWT, що надсилаються із запитом, не перевіряючи сеанс користувача та чи він дозволений чи ні ви можете просто перевірити JWT & тоді ви все готові знати, хто і що може робити цей користувач.
Багато бібліотек пропонують прості способи створення та перевірки JWT в більшості мов програмування, наприклад: у node.js однією з найпопулярніших є jsonwebtoken
Оскільки API REST, як правило, спрямований на те, щоб сервер не мав стан, тому JWT більше сумісні з цією концепцією, оскільки кожен запит надсилається з токеном авторизації, який міститься в самостійному (JWT) без того, щоб сервер повинен відслідковувати сеанс користувача порівняно з сеансами, які роблять серверний стан, щоб він запам'ятовував користувача та його роль, однак сесії також широко використовуються та мають свої плюси, які ви можете шукати, якщо хочете.
Важливо відзначити, що вам потрібно надійно доставити JWT клієнту за допомогою HTTPS і зберегти його в безпечному місці (наприклад, у локальному сховищі).
Дізнатися більше про JWT можна за цим посиланням