我正在编写Intranet应用程序,但服务器也用作工作站。我想知道是否有办法限制访问WWW文件夹,以便隐藏使用这些应用程序的人员的服务器代码(在本例中为PHP)。
有了这个,我还会保护在WWW文件夹内的脚本中编写的数据库的密码。
我一直在寻找一段时间,但我一直无法找到任何相关信息。
我和我的一个恶魔谈过,他告诉我,如果我使用Windows,我可以在Windows中创建一个用户并使该文件夹只能通过此帐户访问并授予Apache访问权限,在这种情况下我们可以看到来自任何其他用户帐户的网站,但无法访问这些文件。
我担心有人使用任何Linux发行版的现场CD获取文件的可能性,他告诉我,如果我安装grub并锁定它,除非是那个人,否则不可能使用live cd它有grub键。
当然在linux中也是可以的。 谁能解释这个过程? 还有其他建议吗?
答案 0 :(得分:0)
所有与非网络相关的资产(例如,不是html文件,css,javascript等)都应放在文档根目录之外。这样就无法通过浏览器访问它们。
答案 1 :(得分:0)
这在Linux上很容易实现。例如,假设您拥有名为john
的网站所有者用户,并且您在系统上有另一个名为bob
的用户。您不希望bob
能够看到john
的文件,但您希望Apache可以访问它们。默认情况下,Apache作为单独的用户运行(通常为apache
或www-data
),并且是john
和bob
组的成员。
然后,保存文件的目录必须没有“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>
这给你留下了一些其他选择
不要在客户端的计算机上安装,而是销售“整个”软件包,包括只能管理的小型服务器
在客户端计算机上安装的虚拟机上运行网站(例如VMWare,Parallels Desktop或类似的东西)。只允许您完全访问虚拟机,因此适用于选项1
'混淆'PHP源代码。有一些选项(搜索PHP混淆),但我会建议选项1或2
当然,您可以随时将该网站作为“托管”服务提供,在外部Web服务器上运行,但如果包含重要信息和私人信息,则必须具备所有正确的安全性。