Каков наилучший способ отправить безопасное письмо в PHP?

Я написал скрипт PHP, который будет запускаться каждый понедельник с помощью cron. В этом письме я прикрепляю документ XLS, содержащий конфиденциальную информацию. Каков наилучший способ защитить это письмо? Могу ли я установить пароль в документе XLS? Могу ли я шифровать письмо и разрешать только правильному получателю иметь разрешение на его открытие?

Я использую PHPExcel для создания документа XLS, если это поможет.

Спасибо за любую помощь!
метрополия

Solutions Collecting From Web of "Каков наилучший способ отправить безопасное письмо в PHP?"

Шифрование электронной почты – самый безопасный способ сделать это IMHO. Если у вас есть контроль над сервером, вы можете установить GPG и вызвать его из командной строки для шифрования электронной почты с помощью секретного ключа. Недостатком является то, что получателю потребуется плагин для своего почтового клиента и открытый ключ для дешифрования сообщения.

Несколько менее безопасный способ, но проще у вашего конечного пользователя, – отправить обычное электронное письмо, содержащее ссылку для пользователя, чтобы загрузить файл XLS. Затем файл XLS хранится за защищенной паролем. Используйте HTTPS для шифрования страницы и загрузки. Кроме того, вы можете создать одноразовый HASH с использованием MD5 или, лучше, SHA256, который генерируется скриптом PHP и хранится в базе данных по отношению к файлу. Отправьте это как параметр ссылки и истечет срок его действия. Это затрудняет непреднамеренный доступ к ссылке.

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

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

Это может быть хорошей отправной точкой: http://www.php.net/manual/en/function.openssl-public-encrypt.php

PHPExcel не поддерживает пароли (пока), а пароли AFAIK в файлах Excel не защищены на 100% (только Office 2007+ хорош в защите файлов). Лучше всего было бы зашифровать файл, прежде чем присоединять его к электронной почте, а затем расшифровать его после его получения. Если вы можете зашифровать его с помощью GnuPG под вашей установкой PHP ( см. Это ), есть плагин для почтовых клиентов Thunderbird и Seamonkey под названием Enigmail, который автоматизирует процесс дешифрования.