在PHP中修改.htaccess文件是否安全?

时间:2011-04-27 13:45:27

标签: php .htaccess

在我的.htaccess文件中,我使用变量(SetEnv)在我进行更新时切换网站的开/关,是安全还是甚至可以通过PHP脚本修改.htaccess文件?

更具体地说,我需要评论/取消评论这些行:

#RewriteCond %{REMOTE_ADDR} !LOCALIPHERE
#RewriteCond %{REQUEST_URI} !^/Site/maintenance.htm
#RewriteCond %{REQUEST_URI} !^/Site/styles/style.css
#RewriteCond %{REQUEST_URI} !^/Site/includes/jquery-1.4.4.min.js
#RewriteCond %{REQUEST_URI} !\.(jpg|jpeg|png|gif|swf)$
#RewriteRule ^.* /Site/maintenance.htm [L]

谢谢

修改

我对安全的定义是:我想知道如果PHP脚本打开.htaccess文件并且同时访问该网站,该网站将如何表现。

3 个答案:

答案 0 :(得分:6)

如果文件可由PHP进程写入,则可以像修改其他文件一样进行修改。

但是,您应该使用RewriteCond检查您的env var。

,而不是评论/取消注释您的代码。

答案 1 :(得分:1)

如果可靠的话,我会在考虑范围内评估“安全修改” - 不会引入语法错误。要做到这一点,我建议你使用更具体的评论标记:

#<off>#RewriteCond %{RE...

使用简单的字符串操作扫描和替换更安全,从而减少修改.htaccess文件时导致500错误的可能性。如果您要启用/禁用不同类型的设置,请使用多个更具体的令牌。

关于安全性本身,让它们具有世界可写性与具有世界可写的PHP脚本或配置文件具有相同的含义。

答案 2 :(得分:0)

只要你知道,你在做什么,它是安全的。但是,如果手动编辑文件并且在脚本中没有反映这种情况,则很容易将其破坏。