【问题标题】:nginx: Deny all files inside directorynginx:拒绝目录内的所有文件
【发布时间】:2015-07-02 19:00:54
【问题描述】:

我有一个“上传”目录,用户可以在其中上传机密文件(jpg、png、pdf)。每个用户都会在上传中分配一个文件夹,例如:/001/、/002/、...、/999/ 等。

我希望这些文件只能通过 SFTP 访问,因此 url http://example.com/upload/259/image.jpg 应该返回 403 错误消息。

我尝试了很多变体,但仍然可以通过 url 访问文件。

location ~ /upload/\.(jpe?g|png|gif|ico)$ {
    deny all;
    return 403;
}

有什么想法吗?

【问题讨论】:

    标签: security nginx download server


    【解决方案1】:

    你仍然需要匹配那部分:'/259/image'

    这应该有效:

    location ~ /upload/.*\.(jpe?g|png|gif|ico)$ {
       deny all;
       return 403;
    }
    

    【讨论】:

      【解决方案2】:

      如果通过 sftp 访问 /upload,那么这就是您所需要的:

      location ^~ /download/ {return 403;}
      

      通过使用 ^~ 跳过正则表达式循环,您将提高性能。此外,您的配置将通过不使用正则表达式位置来减少问题。前缀位置可以去任何地方,但不是正则表达式位置。将使用第一个正则表达式匹配,这可能会导致混乱。

      【讨论】:

      猜你喜欢
      • 2017-09-18
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      • 2016-03-08
      相关资源
      最近更新 更多