我正在将我的文件(pdf,doc,flv等)加载到缓冲区中并使用脚本将它们提供给我的用户。我需要我的脚本能够访问该文件,但不允许直接访问它。什么是达到这个目标的最好方法?我应该使用我的权限执行某些操作还是使用.htaccess锁定目录?阻止通过http直接访问文件,但允许php脚本访问
回答
最安全的方法是将您想要保存的文件放在Web根目录之外,就像Damien建议的那样。这是有效的,因为Web服务器遵循本地文件系统特权,而不是它自己的特权。
但是,有很多托管公司只允许您访问Web根目录。要仍然阻止对这些文件的HTTP请求,请使用阻止所有通信的.htaccess文件将它们自己放到一个目录中。例如,
Order deny,allow
Deny from all
您的Web服务器,因此服务器端语言,仍然可以阅读他们,因为该目录的本地权限允许Web服务器来读取并执行文件。
干杯。
我已经使用此内部音频文件夹,但它是停止我的音频播放器播放音频。我正在使用声音管理器2播放音频。是否有任何解决方法只允许声音管理器播放该音频文件,但是不能停止其他直接访问? – sonill 2013-07-29 06:07:40
@sonill - 您可以将某些IP列入白名单以便能够访问这些目录。例如,添加一个带有“Allow from 127.0.0.1”的新行将允许您的服务器(包括任何服务器端代码)访问该目录中的文件。有关这些位的更多文档可在http://httpd.apache.org/docs/2.4/mod/mod_access_compat.html#allow – 2013-07-30 16:38:21
“但是,有很多托管公司只允许您访问Web根目录。 “为什么这些公司不能将Web根放在比FTP根低一级的地方?他们对PHP的工作方式没有任何知识(或者更可能是一种监督),还是只关心自己的安全和金钱?哦,只需选择一家公司,实际上会对您网站的安全性产生极大的影响。 – FluorescentGreen5 2017-03-30 04:58:18
这些文件与PHP脚本在同一台服务器上吗?如果是这样,只需将文件保留在Web根目录下,并确保您的PHP脚本对于存储的任何位置都具有读取权限。
这就是我阻止从URL直接访问我的ini文件的方式。将以下代码粘贴到根目录下的.htaccess
文件中。 (无需创建额外的文件夹)
<Files ~ "\.ini$">
Order allow,deny
Deny from all
</Files>
我settings.ini
文件是根,没有这个代码是可访问的www.mydomain.com/settings.ini
如果您有机会获得你的httpd。 conf文件(在ubuntu中它位于/ etc/apache2目录中),你应该添加与你在特定目录中的.htaccess
文件相同的行。这是(例如):
ServerName YOURSERVERNAMEHERE
<Directory /var/www/>
AllowOverride None
order deny,allow
Options -Indexes FollowSymLinks
</Directory>
执行此操作要控制信息的每个目录下,你将不得不在一个地方一个文件来管理所有的访问。它是上面的例子,我做了根目录/ var/www。
此选项可能不适用于外包托管,尤其是共享托管。但这是一个比添加许多文件更好的选择。
在httpd.conf中阻止浏览器& wget访问包含文件,特别是说db.inc或config.inc。请注意,您不能在指令中链接文件类型,而是创建多个文件指令。
在重新启动Apache的
service httpd configtest
然后(平滑重启)
service httpd graceful
- 1. 阻止直接访问.php但允许AngularJS $ http请求
- 2. php脚本阻止直接访问
- 3. htaccess阻止直接访问文件夹(例外:通过php)
- 4. 块直接访问一个文件,但允许通过HTTP使用asp.net
- 5. 使文件可以通过Perl脚本访问但阻止从Web访问 - IIS6
- 6. 有没有办法禁止直接访问文件,但允许通过PHP脚本使用IIS下载?
- 7. 阻止对PHP文件的直接HTTP访问
- 8. PHP:如何阻止对文件的直接URL访问,但仍允许通过登录用户下载?
- 9. 阻止来自直接,但仍允许访问在重写规则文件
- 10. 块直接访问PHP文件,只允许本地JavaScript访问它
- 11. 阻止访问者访问.xml文件,但允许Flash将其打开
- 12. 阻止直接url访问
- 13. htaccess阻止直接访问
- 14. 防止外部访问的PHP脚本,但允许AJAX
- 15. 允许从代码访问文件,但阻止浏览器?
- 16. 只允许脚本访问文件iis7.5
- 17. 不允许通过htaccess访问文件
- 18. 只允许通过CGI访问文件
- 19. .htaccess - 拒绝访问文件夹,但允许通过index.php访问文件
- 20. 阻止通过.htaccess直接访问php和html页面
- 21. GCE:阻止直接HTTP/S访问。但是,只能通过N/W Loadbalancer
- 22. 通过URL阻止访问文件
- 23. 停止文件夹中直接访问所有文件,但允许Ajax请求
- 24. 禁止直接访问php页面,但允许访问,如果从特定页面访问
- 25. 阻止直接的html访问包含php脚本的文件夹
- 26. 有没有办法允许直接访问cgi-bin,但只允许本地php访问
- 27. 拒绝对直接访问文件,但允许在htaccess的
- 28. 防止图像盗链,但允许直接访问
- 29. PHP - 只允许通过AJAX访问
- 30. 防止直接访问php文件
愿你看看[这]之前测试你的配置[1] [1] :http://stackoverflow.com/q/43951871/2441637 – 2017-05-13 15:19:24