Почему Django является «менее безопасным» приложением по мнению Google? - PullRequest
5 голосов
/ 26 апреля 2020

Почему Google считает запрос из моего Django приложения на отправку электронной почты через SMTP (smtp.gmail.com) небезопасным? Прочитать их стандарты безопасности не очень полезно:

Как более безопасные приложения помогают защитить вашу учетную запись Когда стороннее приложение отвечает нашим стандартам безопасности, вы можете:

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

Это очень распространенная проблема при отправке по электронной почте с Django. Существуют учебные пособия и stackoverflow вопрос / ответы (второй ответ), которые «решают» эту проблему путем изменения настроек в вашем аккаунте Google, чтобы сделать приложения менее безопасными. У меня это работало и все было в порядке, пока я не прочитал это с Контроль доступа к менее защищенным сайтам :

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

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

Когда я пытаюсь выполнить поиск «Как обезопасить Django с помощью Google» или «Почему Django отображается как ненадежное приложение для Google», я вижу результаты, которые отражают больше того же руководства: просто нажмите переключатель, чтобы разрешить небезопасное приложения в вашем аккаунте Google. Я хочу знать, почему Django считается небезопасным, поэтому возможно Я могу настроить его как безопасный.

1 Ответ

1 голос
/ 27 апреля 2020

Дело не в том, что Django небезопасно, скорее всего, вы отправляете электронную почту, используя SMTP. Включение TLS является первым делом, а также требованием даже использовать службу SMTP Google:

EMAIL_USE_TLS = True
EMAIL_PORT = 587

Номер порта зависит от службы SMTP, которую вы используете. 587 является стандартом, но это может быть что-то еще.

Далее идет настройка SPF и DKIM .

Амазонки SES (Simple Email Service, не бесплатный) делает это почти прозрачным.

Кроме того, вы можете настроить DMAR C, который обеспечивает обратную связь об эффективности ваших настроек.

Существует пакет DKIM для Django: https://pypi.org/project/django-dkim/, чтобы помочь вам настроить его вручную.

Кроме того, существует пакет DMAR C для Django 2 и Python 3: https://pypi.org/project/django-dmarc2/ (я сделал некоторые исправления в исходном пакете, чтобы сделать его совместимым с Django 2 +)

SPF должен быть настроен на вашем DNS.

Имея это, вы должны защитить свои электронные письма.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...