我在 Windows 7 上安装了一个 Apache 服务器。我主要用它进行测试。现在,我需要修改 Apache 的设置,以便作为真实服务器工作。以下是我需要处理的列表。
首先:我在...注册了多个动态 DNS dyndns.com
。我希望每个 DNS 都转到特定的文件夹。我已设法使端口转到不同的文件夹,但不知道如何使用动态 DNS 或域名来实现。
第二件事,我通常使用 shell 脚本来测试服务器的安全性,每当我使用 shell 脚本时,我都可以导航到服务器上的每个目录,甚至我可以看到其他驱动器......
我怎样才能强制用户看到不能在指定的文件夹外导航?
EX: www folder exists at C:/wamp/www .. Inside it I have website1 and website2 .. If I upload the shell to website1, I can use it to get the files/folders in website2 .. How can I make the script think that folder website1 is the root folder and has nothing above it??
最后,在共享服务器上,我可以访问使用域名托管的任何网站,也可以使用服务器的 IP 地址后跟正斜杠和~folder
EX: The server address is 1.2.3.4 ... When I go to http://www.website.com I can see the home page .. How can I make http://1.2.3.4/~website goes to the same directory as http://www.website.com
抱歉,问题太长了 :)
答案1
首先:我在 dyndns.com 注册了多个动态 DNS。我希望每个 DNS 都转到特定的文件夹。我已设法使端口转到不同的文件夹,但不知道如何使用动态 DNS 或域名来实现。
这称为“基于名称的虚拟主机”。Apache 2.2 的文档是这里。
第二件事,我通常使用 shell 脚本来测试服务器的安全性,每当我使用 shell 脚本时,我都可以导航到服务器上的每个目录,甚至我可以看到其他驱动器......
我怀疑上一个问题的答案将解决这个问题,因为使用虚拟主机会将每个站点的内容放在单独的目录中DocumentRoot
。确保每个站点不在另一个主机(例如主服务器DocumentRoot
)的子目录中。
最后,在共享服务器上,我可以访问使用域名托管的任何网站,也可以使用服务器的 IP 地址后跟正斜杠和 ~folder
好的……这就是我所说的确保每个网站的内容不是位于主服务器可以访问的地方。也就是说,如果你的服务器httpd.conf
有:
DocumentRoot c:\wamp\html
然后不要将website1
和website2
目录放在此目录中。