функция "пригласить друзей по электронной почте" ... о каких последствиях для безопасности мне следует беспокоиться? - PullRequest
3 голосов
/ 02 августа 2011

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

Мой вопрос заключается в следующем: как мне запретить кому-либо просто публиковать строку писем в моем сценарии и, по сути, A) перегружать мой почтовый сервер или B) рассылать спам куче людей.Очевидно, что с этим может помочь капча, но просто любопытно, есть ли другие способы ограничить наш риск ...

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

Любые советы, помощь или указания по этому вопросу очень ценятся!

1 Ответ

3 голосов
/ 02 августа 2011

В первую очередь: не используйте универсальный скрипт отправителя!Любой сценарий, который получает получателей и тело сообщения из внешнего запроса, является проблемой безопасности.Безопасность сложна, и вы будете делать ошибки, открывая вас для спаммера.Лучше создать несколько сценариев, которые способны отправлять только определенные электронные письма.Например, сценарий contact-us, который жестко задан или предварительно настроен для отправки электронной почты только вам.Скрипт «Расскажи другу», в котором есть жестко заданный или предварительно сконфигурированный шаблон сообщения.

Далее, вы должны быть очень осторожны с помещением всего, что предоставлено вашими пользователями, в заголовок электронной почты (включая темы сообщения, с / ответ-на адреса, и так далее).Конечно, было бы неплохо автоматически установить ответ на адрес электронной почты пользователя, но что, если я введу это в качестве своего адреса электронной почты:

me@example.org\nBCC:spam-target@example.org

Теперь я рассылаю спам другим людям черезВаша контактная форма, даже если эта форма предназначена только для отправки вам почты.

Вы должны относиться ко всему, что пользователь может поместить в заголовок (или к сообщению), так же подозрительно, как и ко всему, что происходит.в запросе SQL.

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