如何保护带有.htaccess的php文件不被php5下载
昨晚我对我的Web服务器做了一些管理更改。我使用php。php处理器在更新后出现故障,如果有人访问我的主页,php页面只需下载并向任何访问的人显示专有代码和密码。所以我想知道是否有一种方法可以防止使用.htaccess下载任何形式的php文件,但仍然允许正常查看文件。这里的问题是.htaccess正在为用户提供文件,或者不是。您不能告诉它拒绝访问如何保护带有.htaccess的php文件不被php5下载,php,.htaccess,Php,.htaccess,昨晚我对我的Web服务器做了一些管理更改。我使用php。php处理器在更新后出现故障,如果有人访问我的主页,php页面只需下载并向任何访问的人显示专有代码和密码。所以我想知道是否有一种方法可以防止使用.htaccess下载任何形式的php文件,但仍然允许正常查看文件。这里的问题是.htaccess正在为用户提供文件,或者不是。您不能告诉它拒绝访问.php文件,因为在正常使用期间,访问也将被拒绝。如果PHP处理器运行不正常,则不会出现回退行为 在做这样的大事时,可能值得暂时将web根目录移动到“维
.php
文件,因为在正常使用期间,访问也将被拒绝。如果PHP处理器运行不正常,则不会出现回退行为
在做这样的大事时,可能值得暂时将web根目录移动到“维护中”的站点,以尽可能降低风险。在开发过程中遵循的一个好模式是使用一个最小的初始化文件,该文件调用驻留在webroot之外的实际应用程序。这样,在这样的情况下,只有一个没有关键信息的最小存根被公开
<FilesMatch ".*\.php">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
<IfModule php5_module>
<FilesMatch ".*\.php">
Allow from all
Satisfy All
</FilesMatch>
</IfModule>
简化示例:
/
/app
critical_code.php
/webroot
.htaccess <- rewrites all requests to index.php
index.php <- invokes ../app/critical_code.php (or other files as requested)
/
/应用程序
critical_code.php
/网根
.htaccess假设您使用的是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模块成功加载,第二条规则将生效,这将授予访问权限。此外,将密码保存在docroot之外的include文件中总是一个好主意,正是因为这个风险。@Andrew:哦,我甚至没有注意到提到密码。我以为他只是担心人们看到他的代码。是的,伊克斯。