2010-07-06 5 views
0

매주 월요일 cron을 사용하여 실행할 PHP 스크립트를 작성했습니다. 이 이메일에서는 민감한 정보가 포함 된 XLS 문서를 첨부하고 있습니다. 이 이메일을 보호하는 가장 좋은 방법은 무엇입니까? XLS 문서에 암호를 설정할 수 있습니까? 전자 메일을 암호화하고 올바른 수신자 만 열 수 있도록 허용 할 수 있습니까?PHP에서 보안 전자 메일을 보내는 가장 좋은 방법은 무엇입니까

PHPExcel을 사용하여 XLS 문서를 만들 때 유용합니다.

도움 주셔서 감사합니다.
대도시

+0

하나의 옵션은 보안 암호화 알고리즘을 사용하여 xls 파일을 간단히 암호화 한 다음 수신자가 해독하도록하는 것입니다. – Cam

+1

PHPExcel을 사용하면 큰 차이는 없습니다. Excel 비밀번호 설정을 지원하지 않습니다. –

답변

5

이메일을 암호화하는 것은 이럴 그것을 할 수있는 가장 안전한 방법입니다 :

좋은 출발점이 될 수있다. 서버를 제어 할 수있는 경우 GPG를 설치하고 명령 줄에서 호출하여 비밀 키로 이메일을 암호화 할 수 있습니다. 단점은받는 사람이 전자 메일 클라이언트에 대한 플러그인과 메시지 암호를 해독하기위한 공개 키를 요구한다는 것입니다.

XLS 파일을 다운로드 할 수있는 링크가 포함 된 일반 전자 메일을 보내는 것이 보안 수준이 약간 낮지 만 최종 사용자에게는 쉬운 방법이 아닙니다. XLS 파일은 암호로 보호 된 영역 뒤에 저장됩니다. HTTPS를 사용하여 페이지와 다운로드를 암호화하십시오. 또한 PHP 스크립트에서 생성되고 파일과 관련하여 데이터베이스에 저장된 MD5 또는 더 나은 SHA256을 사용하여 한 번만 HASH를 만들 수 있습니다. 링크 매개 변수로 전송하고 만료 시키십시오. 따라서 의도하지 않은 사람이 링크에 액세스하는 것이 훨씬 더 어려워집니다.

두 번째 방법은 SSL을 수행 할 수있는 모든 호스트에서 사용할 수있는 이점이 있습니다. 서버에 특별한 액세스 권한이 필요하지 않습니다.

+0

+1 링크를 전자 메일로 보내기를 언급 한 경우 –

+0

GPG를 사용하여 전자 메일을 암호화하려면 모든 전자 메일 클라이언트에 플러그인이 필요합니까 클라이언트가 프로세스를 쉽게 진행할 수 있도록하려면 어떻게해야합니까? 가장 좋은 해결책은 암호로 보호 된 영역 뒤에 파일을 보관하는 방법을 제안했을 것입니다. – Metropolis

+0

@ Metropolis : 예, 모든 클라이언트는 플러그인이 필요합니다. – Cfreak

1

PHPExcel은 암호 (아직)와 AFAIK passwords on Excel files are not 100% secure (Office 2007+만이 파일 보안에 능숙합니다)을 지원하지 않습니다. 가장 좋은 방법은 전자 메일에 파일을 첨부하기 전에 파일을 암호화 한 다음받은 후 해독하는 것입니다. PHP 설치 (see this)에서 GnuPG으로 암호화 할 수있는 경우 및 Seamonkey 메일 클라이언트 Enigmail에 대한 플러그인이있어 해독 프로세스를 자동화합니다.

+0

우리는 알렉스를 사용하는 호스트에 GnuPG를 설치할 수 없습니다. openssl_public_encrypt를 사용하는 경우 해당 암호화 유형에 대한 플러그인이 있습니까? 또한 전송되는 파일을 어떻게 암호화 할 수 있습니까? 이러한 것들이 데이터를 암호화하는 것처럼 보입니다. – Metropolis

+0

아니요, 다른 유형의 암호화를위한 다른 플러그인을 알지 못합니다. openssl_public_encrypt로 파일을 암호화 할 수 있습니다. file_get_contents와 같은 파일 내용을로드하고 openssl_public_encrypt로 암호화 한 다음 fwrite와 같은 암호화 된 결과를 작성하고 마지막으로이 파일을 전자 메일에 첨부하십시오. – AlexV

+0

그래도 파일이 xls 형식이어야합니다. 이런 식으로 데이터를 암호화하고 PHPExcel을 사용하지 않는다면 여전히 작동할까요? 아니면 PHPExcel을 사용하여 암호화 된 데이터를 출력하는 방법이 있습니까? – Metropolis

관련 문제