如何在 Xampp 中阻止从互联网访问本地主机?

如何在 Xampp 中阻止从互联网访问本地主机?

在我的 Apache 配置文件中httpd.conf我有:

...

<Directory />
    AllowOverride none
    Require all denied
</Directory>

...

<Directory "D:/xampp/htdocs">
    Require all granted
</Directory>

...

通过查找这个问题我了解到我应该在某处插入以下几行:

order allow,deny
allow from 127.0.0.1
deny from all

我不知道的是,它与配置文件中已有的内容究竟有什么关系。例如,我该如何处理“Require all granting”这一行?我应该删除它,还是将此代码片段粘贴到它上面?还是粘贴到它下面?其余部分怎么办?

答案1

如果您只想限制对本地系统的访问(即:您不想理解Order//Allow指令Deny),那么以下解决方案就足够了,“正确的解决方案“。

您应该将套接字绑定到127.0.0.1而不是0.0.0.0(默认使用) - 这样只有本地系统能够连接,并且限制在套接字/操作系统级别强制执行,而不是在 Apache 内。

为此,请使用Listen指令-例如,在您的配置中替换Listen 80为。Listen 127.0.0.1:80

答案2

我该如何处理这一行Require all granted?我应该删除它,还是将此代码片段粘贴到它上面?还是粘贴到它下面?其余部分怎么办?

这些order allow, deny指令是旧语法,应避免使用,因为 Apache 的未来版本可能会取消对它们的支持。您应该(例如)Require all granted用 ex.替换Require ip 127.0.0.1

<Directory "D:/xampp/htdocs">
    Require ip 127.0.0.1
</Directory>

Require您可以阅读使用指令管理访问的基本概述这里

如何在 XAMPP 中阻止从互联网访问本地主机?

正如在该问题的其他答案中提到的那样,您可能希望考虑将您的httpd.conf Listen指令绑定到127.0.0.1

例如 httpd.conf

# Listen 80
Listen 127.0.0.1:80

注意事项

  • 这也会阻止来自您本地网络的任何计算机或设备进行连接。仅127.0.0.1允许来自(运行 XAMPP 的计算机)的连接。

  • 例如,这不会影响 HTTPS(端口 443)。您需要单独指定此项(\conf\extra\httpd-ssl.conf例如,在 下),如下所示Listen 127.0.0.1:443

更好的选择?

如果您正在进行本地开发,并且不担心本地网络上的其他计算机或设备访问 XAMPP,那么更简单/更好的选择可能是不将互联网连接从路由器转发到 XAMPP。假设您的路由器不是很糟糕,这应该(理想情况下)可以阻止本地网络之外的任何人进行一般访问。

相关内容