【问题标题】:what does .htaccess with line AddHandler php5-script .php do?.htaccess with line AddHandler php5-script .php 做什么?
【发布时间】:2011-12-12 23:56:55
【问题描述】:

我正在使用新的虚拟主机。我创建的每个域的 public_html 文件夹是使用具有以下行的 .htaccess 自动生成的:

AddHandler php5-script .php

这是干什么用的?

【问题讨论】:

标签: php apache .htaccess


【解决方案1】:

答案是 htaccess 告诉网络服务器将php 处理为php5-script 并执行它。

关于第一个答案,您将实现您的目标,但这是一个非常糟糕的做法,由于巨大的安全问题,您不应该允许 html 文件作为 php 执行。

【讨论】:

    【解决方案2】:

    它告诉 php 处理文件名中带有 .php 的任何文件即使它不在末尾​​em>。一个名为smile.php.gif 的文件将被解释为一个php 文件,如果您要使用上传脚本,这很糟糕。这是因为 Apache 允许以任意顺序进行多个扩展,因此 gif.php.jpg 与 gif.jpg.php 相同。我听说选择处理程序的最佳方法是使用 FilesMatch。当然,如果您的网络主机在其 httpd.conf 中有此内容,则如果您无权访问 httpd.conf,则必须在使用 FilesMatch 之前使用您的 htaccess 将其“删除”。

    【讨论】:

    • 上传文件易受攻击,即:file.php.png,我们可以通过上传一个名为shell.php.png的文件绕过攻击网站
    【解决方案3】:

    这只是指示 PHP 通过将文件传递给 PHP5 解释器来处理以 .php 结尾的文件。如果没有此配置,Web 服务器可能会将文件作为原始 PHP 代码提供给最终用户的 Web 浏览器,而不是执行代码。这增加了暴露数据库登录凭据或其他机密的危险可能性。

    使用相同的机制,您可以将 Web 服务器配置为将具有除 .php 之外的其他扩展名的文件解析为 PHP 脚本并将它们交给 PHP 解释器。例如,有时通过使用 .html 扩展名来命名 PHP 脚本来屏蔽 PHP 脚本。

    # Interpret both .php & .html as PHP:
    AddHandler php5-script .php .html
    

    【讨论】:

    • 4 年后,我想知道这是否有必要,即使我的 apache 配置中有此规则?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2015-07-03
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多