上传文件并保证其安全

时间:2011-09-26 05:12:04

标签: php security file passwords directory

我正在使用php和MYSQL。我创建了一个会员区,人们可以上传重要的图像(主要用于财务记录)。我希望得到一些关于存储这些文件的最佳方法的建议。什么样的文件夹结构最好? Ex domain.com/Files/UserName/RandomGeneratedName/Files。

还有对chmod,.htaccess,.htpassword和任何密码保护的建议。

提前致谢。

3 个答案:

答案 0 :(得分:3)

我建议将它们存放在树外。通过这种方式,默认情况下您需要启用对它们的访问,而不是禁用访问权限(以防您的.htaccess / config /代码中存在错误,禁止访问文件,未启用)

其次,摆脱随机目录,它不会增加安全性,但它不必要地使实现复杂化

您可以使用php检查成员凭据,放置适当的标题(例如,mime类型,例如etag等),并通过passthru或类似内容提供文件。

答案 1 :(得分:1)

最佳方式:

  • 使用.htaccess保护目录
  • 将index.html添加到目录“以防万一”
  • 使用随机文件名将它们存储在您的目录中
  • 使用php / mysql检查用户是否具有对文件的访问权限

例如: 您在domain.com/protecteddir/sdjasdu83299sdnYUsb.dat中有一个文件

您可以使用php / mysql将用户发送到虚拟目录以下载文件。您可以通过php抛出正确的文件头+文件名。因此,即使该文件名为sdjasdu83299sdnYUsb.dat,用户也会将其下载为“myfinancial.doc”

用户永远不会知道真实文件的位置及其名称。

您的.htaccess文件应包含:

<Files *>
Order Allow,Deny 
Deny from All 
</Files>

答案 2 :(得分:0)

你可以.htaccess进行URL重写并获取index.php文件(编写此代码:)在保存文件的文件夹中,所以当有人想要输入这个文件夹时: 第一:他不知道真正的地址 第二:因为有一个index.php提供给他无法进入的主页。