Flutter, нужно ли шифровать запросы?

Изучаю Flutter. Хочу сделать отдельное приложение для админов и для клиентов. У клиентов планируется оплата услуг, у админов регулировка длительности услуг (списывание с абонементов). Это самые ответственные операции. Не где нет понятной информации про пеердачу данных по зашифрованным каналам. Есть Пининг SSL, но как я понял используют только банки. Как я понимаю, по умолчанию запросы идут на бекенд незашифрованными. А как же токены (админов например), если их прехватят на пути запроса? Как это делается на практике? Бекенд делают с SSL? И запросы отрпавляют на HTTPS? Или никто их не шифрует? Как вы делаете в своих проектах?


Ответы (1 шт):

Автор решения: MiT

Разница между HTTP и HTTPS заключается в одном ключевом аспекте: безопасности. HTTPS – это по сути HTTP с добавленным уровнем шифрования, обеспечиваемым протоколом SSL/TLS (сейчас чаще используется TLS).

HTTP (HyperText Transfer Protocol):

  • Незащищенный протокол: Данные передаются в открытом виде. Представьте себе открытку – любой, кто перехватывает ее по пути, может прочитать сообщение.
  • Порт 80: По умолчанию HTTP использует порт 80 для коммуникации.
  • Уязвимости: HTTP уязвим для различных атак, включая:
    • Подслушивание (Eavesdropping): Злоумышленники могут перехватывать данные, передаваемые между браузером и сервером, например, пароли, данные кредитных карт, личную информацию.
    • Man-in-the-Middle (MitM) атаки: Атакующий может внедряться в соединение между браузером и сервером, изменяя передаваемые данные или перенаправляя пользователя на поддельный сайт.
    • Внедрение данных (Data Injection): Злоумышленники могут внедрять вредоносный код в передаваемые данные, что может привести к выполнению вредоносных скриптов на стороне клиента.

HTTPS (HyperText Transfer Protocol Secure):

  • Защищенный протокол: Данные шифруются с помощью SSL/TLS, что делает их нечитаемыми для третьих лиц. Представьте себе запечатанный конверт – только получатель с ключом может прочитать сообщение.
  • Порт 443: По умолчанию HTTPS использует порт 443.
  • SSL/TLS сертификат: HTTPS требует наличия SSL/TLS сертификата на сервере. Этот сертификат подтверждает подлинность сайта и содержит открытый ключ для шифрования.
  • Преимущества:
    • Конфиденциальность: Шифрование защищает данные от подслушивания.
    • Целостность данных: Гарантирует, что данные не были изменены во время передачи.
    • Аутентификация: Подтверждает подлинность сервера, что защищает от фишинговых атак.
    • SEO: Поисковые системы, такие как Google, отдают предпочтение сайтам с HTTPS, что повышает их рейтинг.
    • Доверие пользователей: HTTPS повышает доверие пользователей к сайту, отображая значок замка в адресной строке браузера.

Почему в современных приложениях необходимо использовать HTTPS:

В современном мире, где безопасность данных крайне важна, использование HTTPS стало стандартом. Передача любой чувствительной информации, такой как пароли, данные кредитных карт, личные данные, должна осуществляться только по HTTPS. Использование HTTP в таких случаях подвергает пользователей огромному риску.

Что будет, если использовать HTTP:

  • Уязвимость к перехвату данных: Все передаваемые через HTTP данные могут быть перехвачены злоумышленниками. Это особенно опасно для сайтов, где пользователи вводят личную информацию.

  • Проблемы с доверием: Современные браузеры помечают сайты с HTTP как «незащищённые». Это вызывает недоверие со стороны пользователей, и они могут отказаться взаимодействовать с таким сайтом, особенно если требуется вводить чувствительные данные.

  • Низкие позиции в поисковой выдаче: Поисковые системы могут понижать рейтинг сайтов, использующих HTTP, что негативно скажется на видимости сайта и его трафике.

  • Отсутствие защиты от взлома: Без HTTPS злоумышленники могут легко подменять контент сайта, внедрять вредоносный код или перенаправлять пользователей на фальшивые страницы.

→ Ссылка