对用户隐藏PHP

对用户隐藏PHP,php,.htaccess,hide,Php,.htaccess,Hide,有没有办法向我的用户隐瞒我正在使用PHP的事实?我想这样做有两个原因: 1) 因此地址栏中的链接看起来更干净(如stackoverflow上的此处) 2) 防止潜在的黑客立即知道要寻找什么 第2点是现实的还是黑客知道我在用什么?我将nginx与php5 fpm一起使用 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $

有没有办法向我的用户隐瞒我正在使用PHP的事实?我想这样做有两个原因:

  • 1) 因此地址栏中的链接看起来更干净(如stackoverflow上的此处)
  • 2) 防止潜在的黑客立即知道要寻找什么
第2点是现实的还是黑客知道我在用什么?我将nginx与php5 fpm一起使用

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

除了mod_rewrite更改,还将
expose_php
设置为false:

以上(或以下)答案提供了技术方面的信息,让我回答道德方面的问题:


不要这样做。第2点是完全无效的,如果有人想做伤害,这不会阻止它。然而,适当的安全检查将是必要的。第1点的有效性很低,现在再也没有人键入链接了。

让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文件,其中只包含其他无法通过任何url访问的文件

1) 因此地址栏中的链接看起来更干净(如stackoverflow上的此处)

嗯。嗯

2) 防止潜在的黑客立即知道要寻找什么

默默无闻的安全。相信我,这不会让他们慢下来

然而,这样做的一个非常有效的原因是,您的网站不受特定开发语言的限制

我看到有几个人已经提到了mod_rewrite。这是一个解决方案,但它是一个非常复杂的工具。另外,在URL路径中嵌入CGI变量时要非常小心——你可以很快破坏这些东西

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

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