Php 有没有办法对www文件夹进行密码保护?

Php 有没有办法对www文件夹进行密码保护?,php,apache,web,directory,Php,Apache,Web,Directory,我正在编写内部网应用程序,但服务器也用作工作站。我想知道是否有办法限制对WWW文件夹的访问,以便对使用这些应用程序的人隐藏服务器代码PHP 有了这个,我还可以保护数据库的密码,这个密码是在WWW文件夹中的脚本中编写的 我已经四处寻找了一段时间,但是我没有找到任何关于这个的东西 我和我的一个朋友谈过,他告诉我,如果我使用windows,我可以在windows中创建一个用户,使文件夹只能由该帐户访问,并授予Apache访问权限。在这种情况下,我们可以从任何其他用户帐户查看网站,但无法访问文件 我担心

我正在编写内部网应用程序,但服务器也用作工作站。我想知道是否有办法限制对WWW文件夹的访问,以便对使用这些应用程序的人隐藏服务器代码PHP

有了这个,我还可以保护数据库的密码,这个密码是在WWW文件夹中的脚本中编写的

我已经四处寻找了一段时间,但是我没有找到任何关于这个的东西

我和我的一个朋友谈过,他告诉我,如果我使用windows,我可以在windows中创建一个用户,使文件夹只能由该帐户访问,并授予Apache访问权限。在这种情况下,我们可以从任何其他用户帐户查看网站,但无法访问文件

我担心有人可能会使用任何linux发行版的live CD来获取文件,他告诉我,如果我安装了grub并将其锁定,那么就不可能使用live CD来获取文件,除非执行此操作的人拥有grub密钥

当然,在linux中也可以做到这一点。 有人能解释一下这个过程吗?
任何其他建议?

所有与web无关的资产(如非html文件、css、javascript等)应放在文档根目录之外。这样就无法通过浏览器访问它们。

在Linux上,这很容易做到。比如说,你有一个网站所有者的用户叫john,系统上还有一个用户叫bob。您不希望bob能够看到john的文件,但希望Apache能够访问这些文件。Apache默认作为单独的用户运行,通常是Apache或www数据,并且是john和bob组的成员

然后,保存文件的目录应该没有其他权限,至少有组的读取和执行权限,可能还有对用户的完全访问权限

drwxr-x--- 35 john john 4096 Jan 29 15:47 /path/to/john/webroot/
您可以通过执行以下操作来完成此操作:

chmod 750 /path/to/john/webroot/
为了让Apache能够访问这些文件,这些文件只需要读访问。然后,您可以将其chmod 640:

chmod 640 /path/to/john/webroot/super_sensitive_config_file.php
然后应该向您展示如下内容:

$ ls -l super_sensitive_config_file.php
-rw-r----- 1 john john 385 Jan 19 16:27 super_sensitive_config_file.php
bob@server:~$ cat /path/to/john/webroot/super_sensitive_config_file.php
cat: /path/to/john/webroot/super_sensitive_config_file.php: Permission denied
然后,bob用户应该看到如下内容:

$ ls -l super_sensitive_config_file.php
-rw-r----- 1 john john 385 Jan 19 16:27 super_sensitive_config_file.php
bob@server:~$ cat /path/to/john/webroot/super_sensitive_config_file.php
cat: /path/to/john/webroot/super_sensitive_config_file.php: Permission denied

完全阻止对文件的访问可能是不可能的,因为您的客户端的计算机所有者可能具有管理员权限,因此始终能够覆盖您对文件/文件夹施加的任何限制

这就给你留下了一些其他的选择

不要安装在客户端的计算机上,而是销售一个“完整”的软件包,包括一个只有您才能管理的小型服务器

在安装在客户端计算机(如VMWare、Parallels Desktop或类似设备)上的虚拟机上运行网站。仅允许您完全访问虚拟机,因此与选项1相同

“混淆”PHP源代码。对于PHP模糊搜索,有一些选项,但我建议选项1或2


当然,您可以始终将网站作为“托管”服务提供,并在外部web服务器上运行,但如果包含重要信息和私人信息,则确保所有适当的安全性非常重要。

您是说Windows上没有权限系统?我理解正确吗?您正在销售基于web的产品,例如内部网,并将其安装在客户的计算机上,但是不想让客户端访问您的源代码php和数据库?是的,我的意思是我正在销售用于intranet服务的web应用程序,我不想让他们访问源代码。@PeeHaa windows上有一个权限系统,但我用一张简单的ubuntu live cd通过了它。我可以访问磁盘上的所有文件并执行任何我想执行的操作,而不管我对这些文件有什么windows权限。如果你不希望别人访问你的代码,请不要共享它。这读起来就像是说html、css、javascript应该放在文档根之外。我想你是指一切,除了那些应该在外面的。我纠正了它。谢谢你指出这一点。我认为OP意味着不应允许在服务器上使用它作为工作站的人访问网站文件。@thaJeztah这正是我的意思,应用程序应该通过本地主机或ip访问,而不是通过源代码本身,我指的是服务器端代码包含用于访问数据库的配置文件和密码。