2012-10-29 32 views
0

我正在构建一个使用PHPMailer发送电子邮件的Web应用程序,并且我已经围绕PHPMailer构建了一个包装类来记录正在发送的电子邮件。我尚未弄清楚的一部分是如何安全地保存附件。我不想将文件内容读入MySQL数据库中的字段,因为这样效率不高。我不想将它们存储在Web服务器上的文件夹中,因为可以从Web浏览器访问它(服务器没有public_html文件夹,因此我无法将它们粘贴到无法访问的文件夹中) 。在Web服务器上安全地保存电子邮件附件

什么是最好的/正确的方式来存储电子邮件附件,以便通过我的应用程序不能读取它们?

回答

0

这真的取决于你想要做什么与这些文件。

如果你存储在公共Web目录中,你可以在那里放一个.htaccess文件(假设你使用的是Apache)来阻止对这些文件的Web访问。

您可以将其存储在公共Web文件夹下的文件夹中。

如大多数服务器有这样的事情

/www/website.com/httpdocs 

其中的httpdocs是公共文件夹。

所有你需要做的就是将它们存储在

/www/website.com/privatedocs 

,使他们无法访问网络

另一种选择是,如果你只是希望审核的邮件,是BCC到另一个电子邮件帐户,如[email protected]

然后,只要看看那个电子邮件帐户,如果你需要检查任何东西。然而,与为本地服务器上的文件扫描导演相比,这很难以编程方式进行检查。

+0

服务器没有httpdocs目录,所有的文件都是公共的,所以我不能使用这个选项(它会让它更容易)。 – mightymouse3062

1

您可以将这些附件保存为加密文件,但我不明白为什么mysql解决方案会有缺陷。除此之外,得到一个适当的服务器,你有私人目录等

+0

尽管我很乐意得到一个合适的服务器,但那个调用却在我之上。我坚持我拥有的东西。你将如何加密文件? – mightymouse3062

+0

好的时候给你一个2年的迟到答案,但如果其他人看到这个问题,你可能会想用AES来加密这个文件。 AES将对文件中的所有数据进行加扰并使其几乎不可能被反转。 AES是一种分组密码,这意味着您将指定一个密钥,然后在需要时使用该密钥对文件进行加密和解密。我喜欢其他答案,这可能会更好,但我也是那些总是喜欢密码学答案的密码学怪才之一。 – SpencerD

相关问题