【问题标题】:Disable public to download files like .env禁止公开下载 .env 等文件
【发布时间】:2021-08-09 09:36:16
【问题描述】:

如何禁用根目录下的下载文件?

例如当我转到链接时;

https://example.com/.env

它将下载 .env 文件,并且

https://example.com/projectfolder/settings.py

它将下载 settings.py 文件。

如何禁用下载访问?

我使用 Plesk Obsidian,这是我在 Plesk 上“Apache 和 nginx 设置”中的附加 nginx 指令(我只测试了 .env 文件):

passenger_enabled on;
passenger_app_type wsgi;
passenger_startup_file passenger_wsgi.py;

location /.env {
     deny all;
}

.env 仍然可以下载。

谢谢。

【问题讨论】:

  • 看来您指定的 nginx 服务器的方式错误,它应该只监听媒体和静态文件的请求。
  • 我在问题中添加了额外的 nginx 指令。我做错什么了吗?另外如何对某些文件夹中的所有.py文件执行此操作?

标签: django nginx plesk


【解决方案1】:

原来缓存存储了我的文件,需要清除它才能下载。

无论如何,这是我从 Django 项目(.env、.py、.pyc、.html)的公共访问权限中排除的内容:

location = /.env {
    deny all;
    return 404;
}

location ~* /.+\.py$ {
    deny all;
    return 404;
}

location ~* /.+\.pyc$ {
    deny all;
    return 404;
}

location ~* /.+\.html$ {
    deny all;
    return 404;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-17
    • 2014-08-12
    • 1970-01-01
    • 1970-01-01
    • 2015-08-20
    • 2011-10-25
    相关资源
    最近更新 更多