什么更好?能够在文档或文件夹中存储word docs,pdfs,扫描图像等用户文档。安全是首要问题。我不希望有人像domain.com/user/social/profile/user_images/23432434.png这样做,并且能够看到它。
感谢。
答案 0 :(得分:2)
之后经常会退回存储在数据库中的文件。仅在数据库中存储文件名或ID。
如果要阻止访问,请将文件存储在DOCUMENT_ROOT
之外。创建一个处理访问权限的包装器脚本,并在调用时使用readfile()
或X-Sendfile:
。 (对于SQL存储的资源,您基本上也会这样做。)
答案 1 :(得分:1)
如果安全性是最重要的问题 - 请使用.htaccess并关闭对内容文件夹的公共访问权限。
答案 2 :(得分:1)
您可以将资源保存在公用文件夹(应用程序所在的文档根文件夹)后面,并将其设置为http://myapp.com/assets.php?id=13
,其中assets.php抓取文件并输出内容。
现在在assets.php
,你可以验证角色等等。
例如:
答案 3 :(得分:1)
如果将其存储在数据库或高清中,则不会影响您的操作。重要的是你将如何提供文件。
为此,您可以使用任何类型的哈希函数。
如果将它与验证码结合使用,检索这些文件将非常困难。
答案 4 :(得分:1)
将文件存储在服务器的根目录之上。
例如:
/ var / www / - 您的服务器根目录。公开提供 / var / documents - 这里的用户文件。在根之上,而不是公开可见。
服务您的文件:
/> /var/www/serve.php#add headers
echo file_read_contents("/var/documents/file.doc");
答案 5 :(得分:1)
在sql中保存文件可能会导致速度变慢等问题。 你可以使用
# no one gets in here!
deny from all
在.htaccess中并使用 echo file_get_contents($ filename); 或 readfile($ filename);