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

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

那么,发生了什么?

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

这里有很多内容,所以让我们潜入……

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

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

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

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

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

您可以修改此指令以限制更多.例如,如果您只想接受来自本地计算机的连接,则可以将其更改为Listen 127.0.0.1 80.通过执行此操作,您将能够从本地计算机上访问您的Web服务器,网址为http://127.0. 0.1 /,http:// localhost /,和http://220.81.184.12/ – 是的,你仍然可以使用与机器相关的任何地址,因为环回工作的方式 – 但世界上任何地方都没有其他机器能够使用任何地址直接访问它.

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

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

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

限制可以访问Apache配置文件中的目录的远程客户端:
请注意:此信息描述了现在不推荐使用的Apache指令.请参阅脚注#1

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

Order allow,deny
Allow from all

这允许来自每个客户端的所有请求.如您所见,有两个指令 – OrderAllow(具有补充指令,Deny).如果要管理Apache服务器,了解这些指令的作用以及它们的工作方式至关重要.它们在链接的手册页中有详细的解释,所以我不会在这里介绍它 – 让我们举一个例子:

Order deny,allow
Deny from all
Allow from 127.0.0.1

认值更改为会导致每个请求被拒绝,除非它来自127.0.0.1 – 您的本地计算机.现在让我们假设你想让你的朋友(IP地址是172.32.64.218)访问该页面 – 我们在上面的配置结尾添加一个他的IP地址的Allow指令:

Allow from 172.32.64.218

设置完成后,您的朋友告诉您他拥有172.32.64.216和172.32.64.223之间的所有IP地址,并希望能够使用其中任何一个来访问您的服务器.而不是创建8个单独的Allow指令,我们可以将其定义为:使用CIDR速记,我们可以将此子网表示为172.32.64.216/29,我们可以在Allow指令中使用它:

Allow from 172.32.64.216/29

<目录> sections定义了目录及其所有子目录的规则,因此如果将规则应用于/ myDir,相同的规则也将适用于/ myDir / subDir和/ myDir / subDir / subSubDir.但是,您可以在树下面覆盖这些规则 – 因此您可以创建<目录> / myDir / subDir / subSubDir的部分具有不同的规则.您也可以使用.htaccess文件来定义规则,只要您使用AllowOveride指令启用它们即可.

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

回答你的问题如果其他人在他的电脑中安装了PHP,会发生什么? – 没有. PHP是一种服务器端脚本语言,不能直接影响任何其他计算机上的任何内容,特别是在控制对远程计算机的访问方面.

脚注#1 06/2012

只是简单地提一下,在Apache 2.4中已经弃用了Order,Allow和Deny指令.此类访问控制现已与标准身份验证过程合并,现在使用mod_authz_host支持的Require ip,Require host和Require local directives提供.

由于向后兼容性,仍然在mod_access_compat中提供对Order,Allow和Deny的支持,但2.4 branch及更高版本的新配置应使用相应的Require结构,旧的配置应在迁移后转换为使用新机制.旧的控制机制将在未来的Apache版本中删除.

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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...