从用户隐藏PHP

时间:2011-07-14 23:07:41

标签: php .htaccess hide

有没有办法隐藏我从用户那里使用PHP的事实?我想这样做有两个原因:

  • 1)因此地址栏中的链接看起来更干净(就像在stackoverflow上这样)
  • 2)防止潜在的黑客立即知道要查找的内容

第2点是否真实,或者黑客是否知道我正在使用的是什么?我正在使用带有php5-fpm的nginx。

5 个答案:

答案 0 :(得分:6)

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

http://eisabainyo.net/weblog/2007/08/19/removing-file-extension-via-htaccess/

答案 1 :(得分:4)

除了mod_rewrite更改外,还要将expose_php设置为false:http://www.php.net/manual/en/ini.core.php#ini.expose-php

答案 2 :(得分:3)

以上(或可能在下面)答案给出了技术方面的信息,让我回答道德方面:

不要这样做。第2点完全无效,如果有人想要伤害,这不会阻止它。然而,适当的安全检查会。第1点是微不足道的,现在没有人输入链接了。

答案 3 :(得分:2)

保持PHP隐藏不受公共访问的最佳方法是相应地构建文件夹。最佳做法是将您的库和应用程序文件保存在公共文件夹的至少一级,例如:

/application
    // application files
/library
    // library and vendor files
/public (aka public_html, htdocs etc)
    index.php
    .htaccess
    /css
    /images
    /js

使用htaccess和mod_rewrite将请求路由到index.php文件,然后将该请求分发给应用程序。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php

这样,您只能公开访问一个php文件,其中只包含其他无法通过任何网址提供的文件

答案 4 :(得分:1)

  

1)因此地址栏中的链接看起来更干净(就像在stackoverflow上这样)

MMM。行

  

2)防止潜在的黑客立即知道要查找的内容

默默无闻的安全。相信我,这不会让他们放慢脚步。

然而,这样做的一个非常正当的理由是,您的网站与特定的开发语言无关。

我看到有几个人已经提到过mod_rewrite。这是一个解决方案 - 但它是一个非常复杂的工具。另外,要非常小心将CGI变量嵌入到URL的路径中 - 您可以快速破解内容。

一个简单的解决方案是将每个入口点php脚本(即任何不是include / require文件的脚本)实现为'index.php'并通过它的目录引用它。

或者选择您自己的文件扩展名,并将配置中的.php引用替换为扩展名。