【问题标题】:Disallow script execution but allow indexing?禁止脚本执行但允许索引?
【发布时间】:2017-07-26 21:31:41
【问题描述】:

下面是我的 Apache sites-enabled/default.conf

基本上我想禁止 all 脚本执行,但仍允许用户查看 /upload/anything 的索引。用户将能够上传将被提取到 www/upload 的 .ZIP 文件。这些可能包括任何内容,例如 .htaccess 文件、.PHP 文件等。是否可以显示文件夹索引但禁止所有执行?

希望有人能给我答案:)

<Directory /var/www/upload/>
            AllowOverride None

            SetHandler none
            SetHandler default-handler

            Options +Indexes -ExecCGI
            php_flag engine off
            RemoveHandler .cgi .php .php3 .php4 .php5 .phtml .pl .py .pyc .pyo
            <Files *>
                    AllowOverride None

                    SetHandler none
                    SetHandler default-handler

                    Options +Indexes -ExecCGI
                    php_flag engine off
                    RemoveHandler .cgi .php .php3 .php4 .php5 .phtml .pl .py .pyc .pyo
            </Files>
    </Directory>

【问题讨论】:

  • 您在问题中包含的代码似乎是“答案”?这不起作用吗?但是,我认为没有理由使用 &lt;Files *&gt; 包装器吗?默认情况下,点文件(例如.htaccess)可能会被隐藏/阻止。
  • 是的。它不起作用:P
  • 以什么方式“不起作用”?你有错误吗?你看到目录索引了吗?是否仍在处理 PHP 文件? .htaccess 文件仍在处理中?大概你已经重启了你的服务器?
  • 我收到的是 Apache 404 Not Found 错误,而不是生成的索引。重启了好几次!

标签: apache .htaccess


【解决方案1】:

当然可以,自动生成索引页面 apache http 服务器显示与脚本无关。您甚至可以删除加载到 apache http 服务器中的所有脚本执行模块,并且仍然可以从其生成的索引页面中受益。您也可以使用AllowOverwrite 指令来防止动态配置文件的解释,只需查看文档即可。

然而我怀疑你在这里使用了一个好的方法。与其依赖 http 服务器构建文件处理功能,不如使用重写和路由的组合来保持控制并自己处理所有上传文件的请求。这样整个问题就无关紧要了。

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 2016-02-22
    • 2016-07-26
    • 2011-05-15
    • 2020-07-27
    • 2020-07-02
    • 2012-07-17
    • 2014-04-02
    • 1970-01-01
    相关资源
    最近更新 更多