gpt4 book ai didi

php - 如果我下载了 PHP/MySQL,其他人可以访问我的文件吗?

转载 作者:IT王子 更新时间:2023-10-29 00:22:37 28 4
gpt4 key购买 nike

我有大学互联网。它有 IP,比方说 220.81.184.12。我有一个名为 MyProject(它的文件夹)的项目。当我尝试输入 220.81.184.12/MyProject 时,它会启动我的网站。这意味着,大学里的每个人都可以访问我的文件夹和站点?我使用 Ubuntu 并安装了 PHP 和 MySQL。而且我还可以通过 IP 访问 phpmyadmin,如 220.81.184.12/phpmyadmin。

那么,发生了什么?

编辑:这是什么意思?如果其他人在他的 PC 上安装了 PHP,会发生什么?

最佳答案

这里要介绍的内容很多,所以让我们深入...

正如 Marc B 所提到的,如果您在没有防火墙的 public IP 上设置 Web 服务器,互联网上的每个人都可以访问它。这并不是说你处于这种情况——你说你在一个大学网络上,你很可能会发现他们实现了某种形式的具有 NAT 的本地网络。层和/或 firewall在您的 PC 和互联网之间。但是,您可能仍然会发现大学网络上的每个人(或至少您所在的网段 - 参见 subnettingVLANs )都可以访问您的 Web 服务器。

你能做些什么来防止这种情况?

这绝不是一个详尽的列表,但这里有一些更常用的控制 Web 服务器安全的方法。

将您的 Web 服务器设置为仅在 localhost 上监听(Mark B 已经涵盖了这一点,但要澄清一下):

主要的 Apache 配置文件,httpd.conf , 使用名为 Listen 的指令确定在启动时创建和绑定(bind)哪些监听套接字。默认通常是 Listen 80 ,这意味着服务器将监听 TCP端口 80,在机器上注册的每个 IP 地址上。这些 IP 地址将为 127.0.0.1 , loopback address ,以及与您安装的任何网络接口(interface)相关联的任何 IP 地址,例如上述 220.81.184.12 的示例.

您可以将此指令修改为更具限制性。例如,如果您只想接受来自本地机器的连接,您可以将其更改为 Listen 127.0.0.1 80 .通过这样做,您将能够从位于 http://127.0.0.1/ 的本地计算机访问您的 Web 服务器。 , http://localhost/ , 和 http://220.81.184.12/ - 是的,由于环回的工作方式,您仍然可以使用与机器关联的任何地址 - 但世界上任何其他地方的机器都无法使用任何地址直接访问它。

配置防火墙以阻止来自其他机器的连接:

默认情况下,几乎所有防火墙都会阻止每个传入请求,并且您必须明确允许开放端口和/或应用程序接受传入连接。如果您不希望其他机器能够访问您的服务器,请不要打开允许应用程序的端口。许多防火墙允许您对这些规则更有选择性,通过允许来自某些 IP 地址而不是其他 IP 地址的传入请求。

如果您想阻止其他人访问您计算机托管的网络资源,防火墙通常是一个不错的起点。 You should find that your Ubuntu installation comes with iptables included .

限制可以访问 Apache 配置文件中目录的远程客户端:
请注意:此信息描述了现已弃用的 Apache 指令的使用。引用脚注#1

您可能已经知道,为了让 Apache 为目录提供服务,您必须创建一个 <Directory> 部分在 httpd.conf .在默认配置文件中,您将找到一个预先配置为服务的部分 DocumentRoot ,其中将包含一些如下所示的行:

Order allow,deny
Allow from all

这允许来自每个客户端的所有请求。如您所见,那里有两个指令 - Order Allow (它有一个补充指令, Deny )。如果您要管理 Apache 服务器,了解这些指令的作用及其工作方式至关重要。它们在链接的手册页中有非常详细的解释,所以我不会在这里讨论 - 让我们举一个例子:
Order deny,allow
Deny from all
Allow from 127.0.0.1

将默认值更改为此会导致每个请求都被拒绝,除非它源自 127.0.0.1 - 您的本地机器。现在假设你想允许你的 friend ,他的 IP 地址是 172.32.64.218 , 也可以访问该页面 - 我们添加了 Allow将他的 IP 地址指令添加到上述配置的末尾:
Allow from 172.32.64.218

设置好之后,你的 friend 告诉你他拥有 172.32.64.216之间的所有IP地址。和 172.32.64.223 ,并希望能够使用它们中的任何一个来访问您的服务器。而不是单独创建 8 个 Allow指令,我们可以将其定义为一个:使用 CIDR简写,我们可以将此子网表示为 172.32.64.216/29 ,我们可以在 Allow 中使用它指示:
Allow from 172.32.64.216/29
<Directory>部分定义目录及其所有子目录的规则,因此如果您将规则应用于 /myDir ,同样的规则也适用于 /myDir/subDir/myDir/subDir/subSubDir .但是,您可以在树的下方覆盖这些规则 - 因此您可以创建 <Directory>部分为 /myDir/subDir/subSubDir用不同的规则。您也可以使用 .htaccess文件来定义规则,只要您使用 AllowOveride 启用它们指示。

如您所见,这种控制谁可以访问您站点的方法既配置相对简单,又可以提供强大而灵活的规则控制。

回答您的问题 If other person installed PHP in his PC, what would happen? - 没有。 PHP 是一种服务器端脚本语言,不能直接影响任何其他计算机上的任何内容,尤其是在控制对远程计算机的访问方面。

脚注 #1 06/2012

只是一个简短的说明,提到 Order , AllowDeny指令已在 Apache 2.4 中弃用。这种类型的访问控制现在已与标准身份验证过程合并,现在使用 Require ip 提供。 , Require hostRequire local mod_authz_host 支持的指令.

支持 Order , AllowDeny仍通过 mod_access_compat 提供为了向后兼容,但 2.4 分支及更高版本的新配置应使用适当的 Require结构和旧配置应在迁移后立即转换为使用新机制。 旧的控制机制将在 Apache 的 future 版本中删除。

提供了一份介绍新指令用法的文档 here .

关于php - 如果我下载了 PHP/MySQL,其他人可以访问我的文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7757274/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com