微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Apache 在扩展名前带有 .php 的文件中执行代码,例如: .php.txt , php.pdf

如何解决Apache 在扩展名前带有 .php 的文件中执行代码,例如: .php.txt , php.pdf

我该怎么做才能阻止 Apache 执行在扩展名前带有 .PHP文件中的代码,例如:.PHP.txt、PHP.pdf,我不知道这是否与 webuzo 管理面板 n/或 apache 相关?

Apache 2.2.34 版

在 webuzo 论坛上打开线程,如果其他人有这个问题,它可能是相关的: https://www.softaculous.com/board/index.php?tid=17642

解决方法

这是合理的标准行为 - files can have multiple extensions on Apache。 (正如他们在 other OS / filesystems 上可以做到的那样。)

然而,这种行为是可以避免的。

是否为 PHP 处理以 .php.txt.php.pdf 结尾的文件取决于 PHP 在服务器上的启用方式。

例如,如果您简单地使用 AddHandler,那么任何包含一个 .php 扩展名(如 .php.txt)的文件都将由 PHP 处理程序处理:

AddHandler application/x-httpd-php .php

但是,如果您仅在特定文件模式上调用 SetHandler,即。当 .php 出现在文件名末尾时,可以避免这种行为。

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>

注意:这不是一个可复制/可粘贴的解决方案 - 它实际上取决于 PHP 在您的 Apache Web 服务器上的实现方式。

根据您的要求,您可能会阻止对包含 .php 扩展名但不在 URL 路径末尾的文件的请求。例如:

<FilesMatch "\.php\.">
    Order Allow,Deny
    Deny from all
</FilesMatch>

注意:这是 Apache 2.2 语法(如问题所述)。如果您使用的是 Apache 2.4,那么您将在最后一个块中使用 Require all denied 而不是 OrderDeny 指令。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。