上传文件并保证其安全

发布于 2024-12-06 14:36:28 字数 225 浏览 0 评论 0原文

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

还有关于 chmod、.htaccess、.htpassword 和任何类型的 php 密码保护的建议。

提前致谢。

I'm using php and MYSQL. I've created a members area where people can upload important images (basically for financial record). I was hoping to get some advice as to the best way to store these files. What kind of folder structure would be best? Ex domain.com/Files/UserName/RandomGeneratedName/Files.

Also any advice for chmod, .htaccess, .htpassword and any kind of password protection with php.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

安静 2024-12-13 14:36:28

我建议将它们存放在树外。这样,默认情况下,您需要启用对它们的访问,而不是禁用访问(以防万一您的 .htaccess/config/code 中有错误,对文件的访问将被禁用,而不是启用)

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

您可以使用 php 检查成员凭据,放置适当的标头(例如,etag 等的 mime 类型),并提供服务通过 passthru 或类似的东西。

I would recommend to store them outside the tree. In this way, by default you need to enable access to them, not disable access (just in case you have a bug in your .htaccess/config/code, the access to the files is disabled, not enabled)

Second, get rid of the random directory, it doesn't add much to the security, but it complicates the implementation unnecessarily

You can use php to check the member credentials, put the appropriate headers (mime type for ex., etag, etc.), and serve the file via passthru or something similar.

骄兵必败 2024-12-13 14:36:28

最好的方法:

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

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

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

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

您的 .htaccess 文件应包含:

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

Best way:

  • protect the directory with .htaccess
  • add an index.html to directory "just in case"
  • use random file names to store them in your directory
  • use php/mysql to check if user has access rights to your files

example:
You have a file in domain.com/protecteddir/sdjasdu83299sdnYUsb.dat

You can use php/mysql to send to user to a virtual directory to download the file. You can throw the correct file header + file name via php. So even if the file is called sdjasdu83299sdnYUsb.dat the user would download it as "myfinancial.doc"

The user will never know what the real file is located nor its name.

Your .htaccess file should contain:

<Files *>
Order Allow,Deny 
Deny from All 
</Files>
孤云独去闲 2024-12-13 14:36:28

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

you could .htaccess for URL Rewriting and get the index.php file (write this code: ) in folder that save your files, so when anyone want to enter this folder:
First: he dont know real address
second: due there is a index.php that offer to home page he could not enter.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文