【发布时间】:2011-12-12 23:56:55
【问题描述】:
我正在使用新的虚拟主机。我创建的每个域的 public_html 文件夹是使用具有以下行的 .htaccess 自动生成的:
AddHandler php5-script .php
这是干什么用的?
【问题讨论】:
我正在使用新的虚拟主机。我创建的每个域的 public_html 文件夹是使用具有以下行的 .htaccess 自动生成的:
AddHandler php5-script .php
这是干什么用的?
【问题讨论】:
答案是 htaccess 告诉网络服务器将php 处理为php5-script 并执行它。
关于第一个答案,您将实现您的目标,但这是一个非常糟糕的做法,由于巨大的安全问题,您不应该允许
html文件作为php执行。
【讨论】:
它告诉 php 处理文件名中带有 .php 的任何文件,即使它不在末尾em>。一个名为smile.php.gif 的文件将被解释为一个php 文件,如果您要使用上传脚本,这很糟糕。这是因为 Apache 允许以任意顺序进行多个扩展,因此 gif.php.jpg 与 gif.jpg.php 相同。我听说选择处理程序的最佳方法是使用 FilesMatch。当然,如果您的网络主机在其 httpd.conf 中有此内容,则如果您无权访问 httpd.conf,则必须在使用 FilesMatch 之前使用您的 htaccess 将其“删除”。
【讨论】:
这只是指示 PHP 通过将文件传递给 PHP5 解释器来处理以 .php 结尾的文件。如果没有此配置,Web 服务器可能会将文件作为原始 PHP 代码提供给最终用户的 Web 浏览器,而不是执行代码。这增加了暴露数据库登录凭据或其他机密的危险可能性。
使用相同的机制,您可以将 Web 服务器配置为将具有除 .php 之外的其他扩展名的文件解析为 PHP 脚本并将它们交给 PHP 解释器。例如,有时通过使用 .html 扩展名来命名 PHP 脚本来屏蔽 PHP 脚本。
# Interpret both .php & .html as PHP:
AddHandler php5-script .php .html
【讨论】: