【问题标题】:How to disallow the execution of PHP files in a specific directory?如何禁止在特定目录中执行 PHP 文件?
【发布时间】:2022-03-18 17:34:42
【问题描述】:

我注意到服务器上有一个巨大的错误,它允许上传任何文件(包括 *.php)然后执行它!它是可怕的!我不知道我是否应该阻止上传 *.php 文件或在 php.ini 中禁用它们的执行(我不知道该怎么做)

【问题讨论】:

  • 您可以使用$path = $_FILES['image']['name']; $ext = pathinfo($path, PATHINFO_EXTENSION); 之类的方法在上传脚本中获取文件扩展名,然后在检测到php 文件后停止上传。 (或者更好的是,只有当文件是您想要的类型时才允许它继续)
  • 澄清标题

标签: php iis


【解决方案1】:

您可以将上传的文件放在网络根目录之外。

另外,您可以设置 IIS 拒绝上传 PHP 文件:IIS 8.5 deny PHP upload

另外,您可以设置上传文件夹的权限,禁止在其中执行文件。

此外,您可以检查正在上传的文件的类型:http://php.net/manual/ro/function.mime-content-type.php

您也可以设置读/写权限,但不能执行。

【讨论】:

    【解决方案2】:

    如果您使用的是apache,请在文件夹中创建一个.htaccess文件并编写以下代码

    <Files *.php>
    deny from all
    </Files>
    

    然后保存文件。这样可以防止文件夹中PHP文件的执行

    【讨论】:

    • 他们没有使用 Apache。该问题被标记为iis
    【解决方案3】:

    如果您使用 Apache 服务器,请尝试将包含字符串 php_flag engine off 的目标目录文件 .htaccess 放入。这将阻止任何文件作为该目录和所有子目录的 php 脚本执行。还要防止上传文件名以“.”开头的任何文件

    【讨论】:

    • 他们没有使用 Apache。该问题被标记为iis
    猜你喜欢
    • 2018-04-09
    • 1970-01-01
    • 2015-05-27
    • 2011-12-23
    • 2023-04-05
    • 2017-10-05
    • 1970-01-01
    • 2020-05-29
    • 2014-03-16
    相关资源
    最近更新 更多