【问题标题】:Prevent downloading files in a folder with many subs in it with .htaccess?使用 .htaccess 防止在包含许多子目录的文件夹中下载文件?
【发布时间】:2018-12-31 21:33:05
【问题描述】:

我有一个 vpn 服务器,所以我可以访问任何东西,如果我需要 httpd.conf 等。

已经在 wordpress 根文件夹的 .htaccess 中使用以下代码:

RewriteEngine on     
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domainhere\.com [NC]         
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domainhere\.com.*$ [NC]         
RewriteRule \.(gif|jpg|js|txt|mp4)$ /maalesef [L]        

在包含的视频文件夹中创建了另一个 .htaccess;

order deny,allow    
deny from all    

在videos/english子文件夹中创建了另一个。

我需要保护该文件夹,其中包含许多子文件夹和 mp4 文件。基本上将是一个付费视频课程。用户可以通过播放器流式传输,但不能下载。我不想支付 Vimeo Pro 或 Amazon S3 的费用,因为这是一个预算项目,也许将来为什么不这样做。

如果有办法通过使用 FFMPEG 或名为 pavtube video converter Ultimate 的软件将 mp4 转换为 HLS 来保护它们,我也很乐意。

奖励:http://beezcode.com/hls 他们是怎么做到的?无法使用 chrome 上的插件下载,可以下载播放列表 m3u8,但无法使用 windows 上的任何媒体播放器打开。

【问题讨论】:

  • 您使用的是什么版本的 Apache?

标签: wordpress .htaccess


【解决方案1】:

在包含的视频文件夹中创建了另一个 .htaccess;

order deny,allow    
deny from all    

在videos/english子文件夹中创建了另一个。

如果您只想保护所有内容,则无需在子目录中复制这些 .htaccess 文件。 .htaccess 文件适用于当前目录及其下方的整个目录树。

请注意,这些是 Apache 2.2 指令。如果您使用的是 Apache 2.4,那么您应该使用以下代码:

Require all denied

如果您只想根据文件扩展名保护某些文件类型,请使用<FilesMatch> 容器。例如:

<FilesMatch "\.(gif|jpg|js|txt|mp4)$">
    Require all denied
</FilesMatch>

但是,如果这些文件只能由您的应用程序访问,那么请考虑将它们存储在文档根目录之外。然后自动保护文件免受直接/HTTP 访问 - 无需再做任何事情。这是更安全的选择,因为它不依赖于任何用户代码(即.htaccess),也不会受到服务器错误配置的影响。


RewriteCond %{HTTP_REFERER} !^http://(www\.)?domainhere\.com [NC]         
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domainhere\.com.*$ [NC]         
RewriteRule \.(gif|jpg|js|txt|mp4)$ /maalesef [L]

这只是“热链接”保护。这是不可靠且易于规避的。在任何情况下,如果您有上面的代码阻止所有 HTTP 访问,那么这些指令就不太相关了。

【讨论】:

  • 刚刚检查,它是 apache 2.4。什么时候去上班去试试 Require all denied。但如果我应该将这些文件上传到 public_html 之外并用播放器调用它们会更好吗?就这样?不需要 htaccess 或其他任何东西?
  • 试过要求全部拒绝;没用。媒体文件可以在 home/public_html/videos 下载尝试将所有移动到文档根目录 home/domainname 。文件无法播放:)
  • "如果我最好将这些文件上传到 public_html 之外" - 是的,如上所述,这会更好。这确实假设您的“播放器”没有通过 HTTP 请求这些文件 - 它需要在文件系统上具有适当的权限才能读取此文件并将其 回客户端。
  • "尝试要求全部拒绝;没有用。" - 服务器配置中是否启用了.htaccess 文件? (尽管如果您可以访问服务器配置,那么可以说您不应该在.htaccess 中执行此操作。)您在.htaccess 中还有其他指令吗?或任何其他.htaccess 文件?
猜你喜欢
  • 2015-09-14
  • 1970-01-01
  • 2023-03-08
  • 2014-02-04
  • 2014-06-20
  • 1970-01-01
  • 1970-01-01
  • 2016-06-28
  • 2014-09-14
相关资源
最近更新 更多