有没有办法密码保护www文件夹?

时间:2013-01-29 20:08:08

标签: php apache web directory

我正在编写Intranet应用程序,但服务器也用作工作站。我想知道是否有办法限制访问WWW文件夹,以便隐藏使用这些应用程序的人员的服务器代码(在本例中为PHP)。

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

我一直在寻找一段时间,但我一直无法找到任何相关信息。

我和我的一个恶魔谈过,他告诉我,如果我使用Windows,我可以在Windows中创建一个用户并使该文件夹只能通过此帐户访问并授予Apache访问权限,在这种情况下我们可以看到来自任何其他用户帐户的网站,但无法访问这些文件。

我担心有人使用任何Linux发行版的现场CD获取文件的可能性,他告诉我,如果我安装grub并锁定它,除非是那个人,否则不可能使用live cd它有grub键。

当然在linux中也是可以的。 谁能解释这个过程? 还有其他建议吗?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

这在Linux上很容易实现。例如,假设您拥有名为john的网站所有者用户,并且您在系统上有另一个名为bob的用户。您不希望bob能够看到john的文件,但您希望Apache可以访问它们。默认情况下,Apache作为单独的用户运行(通常为apachewww-data),并且是johnbob组的成员。

然后,保存文件的目录必须没有“other”的权限,至少是“group”的读取和执行权限,并且可能是对用户的完全访问权限。

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用户应该会看到如下内容:

bob@server:~$ cat /path/to/john/webroot/super_sensitive_config_file.php
cat: /path/to/john/webroot/super_sensitive_config_file.php: Permission denied

答案 2 :(得分:0)

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

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

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

  2. 在客户端计算机上安装的虚拟机上运行网站(例如VMWare,Parallels Desktop或类似的东西)。只允许您完全访问虚拟机,因此适用于选项1

  3. '混淆'PHP源代码。有一些选项(搜索PHP混淆),但我会建议选项1或2

  4. 当然,您可以随时将该网站作为“托管”服务提供,在外部Web服务器上运行,但如果包含重要信息和私人信息,则必须具备所有正确的安全性。