Безопасность и конфиденциальность

Когда вы создаете форму, вы работаете с пользовательскими данными. Вашей задачей номер один должно быть обеспечение конфиденциальности и безопасной передачи пользовательских данных. Давайте посмотрим, что можно сделать.

Убедитесь, что ваша форма безопасна

В качестве первого шага обязательно запрашивайте как можно меньше данных. Не запрашивайте данные, которые вам не нужны, и всегда задавайтесь вопросом, нужны ли вам все запрошенные данные. Меньше данных означает меньший риск, меньшие затраты и меньшую ответственность. Кроме того, уменьшение количества полей в форме делает ее менее сложной, ее легче заполнять и может снизить процент отказов.

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

Допустим, вы сидите в кафе и пользуетесь общедоступным Wi-Fi. Вы открываете сайт электронной коммерции и вводите данные своей кредитной карты, чтобы что-то купить. Если веб-сайт использует HTTP, любой (имеющий соответствующие навыки) в той же общедоступной сети Wi-Fi сможет увидеть информацию о вашей кредитной карте. Если веб-сайт использует HTTPS, данные зашифрованы и, следовательно, защищены от попыток доступа к ним.

На своем сайте вам также следует перенаправить все HTTP-запросы на HTTPS. Узнайте больше о том, как перенаправить весь трафик на HTTPS .

Помогите пользователям сохранить конфиденциальность своих данных

В первом модуле вы узнали о двух возможных способах передачи данных: с помощью GET запроса и с помощью POST запроса.

В запросе GET данные формы включаются в URL-адрес запроса в виде строки запроса . Если вы отправляете форму, использующую запрос GET , браузер добавляет URL-адрес запроса, включая данные формы, в историю просмотров. Удобно, если вы хотите просмотреть прошлые отправленные формы, например, для формы поиска. Совсем нехорошо, если отправляются конфиденциальные данные, и каждый, у кого есть доступ к истории вашего браузера или локальной сети, может видеть эту информацию.

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

А как насчет сохранения и обработки персональных данных непосредственно в браузере? Вы можете использовать клиентское хранилище, например localStorage для хранения личных данных в браузере. Что касается конфиденциальности, это далеко не идеально. Опять же, каждый, у кого есть доступ к вашему браузеру, может прочитать эту информацию. Вам следует хранить только зашифрованные значения личных данных.

Убедитесь, что пользователи могут безопасно зарегистрироваться и войти в систему.

Аутентификация учетной записи пользователя — сложная проблема с точки зрения конфиденциальности и безопасности. Возможно, лучше использовать стороннего поставщика удостоверений вместо создания собственной безопасной системы аутентификации.

Узнайте больше о рекомендациях по аутентификации учетной записи и управлению паролями .

Помогите пользователям получить доступ к их личным данным

Во многих регионах действуют законы и правила, касающиеся защиты данных и конфиденциальности, включая CCPA в Калифорнии и PDPA в Индии. Каждый веб-сайт, доступный в Европейском Союзе (ЕС), должен соответствовать Общему регламенту защиты данных (GDPR), даже если сайт находится за пределами ЕС.

GDPR устанавливает правила сбора и обработки личной информации людей, живущих в ЕС. Для обработки персональных данных требуется согласие, пользователи могут в любой момент запросить личную информацию, которую вы храните, а вы должны официально заявить об утечке данных. Это хорошо для пользователя, поскольку это помогает гарантировать соблюдение его конфиденциальности. Узнайте больше о GDPR .

Убедитесь, что ваши пользователи знают, как вы планируете обрабатывать персональные данные. Прозрачность – ключ к доверию. Пользователи всегда должны иметь возможность доступа, изменения и удаления всех данных, которые вы для них сохранили.

Убедитесь, что пользователи могут обновлять свои личные данные

Предоставьте пользователям возможность легко обновлять свои личные данные, включая пароли, адреса электронной почты и имена пользователей. Уведомляйте пользователей об изменениях в их сохраненных личных данных и обеспечьте, чтобы пользователи могли отменить изменения. Например, отправьте электронное письмо на предыдущий и новый адрес электронной почты после того, как пользователи изменят свой адрес электронной почты.

Упростите для пользователей удаление своей учетной записи, включая все связанные с ней данные, и, где это возможно, предоставьте возможность загрузки данных. Удаление учетной записи является юридическим требованием в некоторых регионах.

Требовать дополнительный этап аутентификации, например повторный ввод текущего пароля, для просмотра или изменения личной информации на вашем сайте.

Узнайте больше: Рекомендации по обеспечению конфиденциальности веб-приложений .

Убедитесь, что все данные в порядке.

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

Проверка помогает убедиться в правильности формата данных, но вам все равно не следует доверять данным, введенным пользователями. Как безопасно выводить данные? Чтобы предотвратить межсайтовый скриптинг (XSS) и обеспечить безопасность включения всех данных в HTML, необходимо очистить данные перед выводом.

Узнайте больше об очистке данных перед выводом и, где это возможно, используйте Sanitizer API .

Убедитесь, что все материалы исходят от реальных людей.

Чтобы защитить ваши данные, у вас есть различные возможности предотвратить рассылку спама от ботов .

Первый вариант — использовать такой сервис, как reCAPTCHA , чтобы отличать реальных людей от ботов. Для этого вам необходимо включить фрагмент JavaScript на свою страницу и добавить дополнительные атрибуты к кнопке «Отправить» .

reCAPTCHA выполняет различные проверки, чтобы узнать, являетесь ли вы человеком. Например, он может попросить вас идентифицировать изображения. Автоматизированное программное обеспечение, такое как бот, не может выполнить эти задачи и не может отправить форму.

Приманка

Другой вариант — использовать так называемый «приманку»: визуально скрытое поле формы. Люди не увидят поле приманки, но боты его заполнят. На серверной стороне ваш сценарий обработки может проверить, заполнено ли поле. Если это так, то сообщение, вероятно, было отправлено ботом, и вы можете его проигнорировать.

Существуют также такие службы, как Akismet , которые могут помочь вам защититься от спама. Фильтр Akismet работает путем объединения информации о спаме, полученном на всех участвующих сайтах, а затем использования этих спам-правил для блокировки будущего спама. Akismet прозрачен для пользователя и перехватывает большую часть спама.

Проверьте свое понимание

Проверьте свои знания о безопасности и конфиденциальности

Какой способ передачи личных данных с помощью форм предпочтителен?

POST запрос.
🎉
Почтовый голубь.
Попробуйте еще раз!
GET -запрос.
Попробуйте еще раз!
HTTPS
Попробуйте еще раз!

Как можно предотвратить спам?

КАПЧА
🎉
Поле формы Honeypot.
🎉
Спам-сервисы.
🎉
Подавайте только вегетарианские формы.
Попробуйте еще раз!

Ресурсы