昨晚我对网络服务器进行了一些管理员更改。我用的是php。更新后php处理器失败,如果有人进入我的主页,php页面只会下载并向访问的任何人显示专有代码和密码。所以我想知道是否有办法阻止使用.htaccess下载任何形式的php文件 - 但仍允许正常查看文件。
答案 0 :(得分:5)
在开发过程中要遵循的一个好模式是使用最小的初始化文件,该文件调用驻留在webroot之外的实际应用程序。这样,在这种情况下,只暴露出没有关键信息的最小存根。
简化示例:
/
/app
critical_code.php
/webroot
.htaccess <- rewrites all requests to index.php
index.php <- invokes ../app/critical_code.php (or other files as requested)
答案 1 :(得分:3)
这里的麻烦是.htaccess正在向用户提供文件,或者不是。您不能告诉它拒绝访问.php
文件,因为在正常使用期间访问也将被拒绝。如果PHP处理器没有正确运行,则没有回退行为。
也许值得暂时将网络根目录转移到指向“维护不足”的网站,以便做大事这样做,尽可能地降低风险。
答案 2 :(得分:1)
假设你正在使用Apache,你的.htaccess文件看起来就像这样。
<FilesMatch ".*\.php">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
<IfModule php5_module>
<FilesMatch ".*\.php">
Allow from all
Satisfy All
</FilesMatch>
</IfModule>
第一条规则拒绝访问所有.php文件。默认情况下,用户将看到403(禁止)错误。
如果PHP5模块成功加载,第二条规则将生效,授予访问权限。