我正在使用 Django 开发一个网络应用程序。当我运行该命令manage.py runserver
时,我可以访问该网站http://localhost (127.0.0.1:8000)
。如果我在进行开发时保持 24/7 全天候运行,是否存在安全风险。我是否需要在我的路由器上阻止此端口以使其无法从外部访问?
1 回答
不,没有安全风险,因为它在 localhost 界面 (127.0.0.1) 中运行,因此只能从您的计算机访问。
仅当您将其运行到 0.0.0.0 接口(manage.py runserver 0.0.0.0:8000)时才会存在安全风险。
详细说明我的答案:当一个监听连接的应用程序(例如 django 开发服务器)想要运行时,它必须定义它想要绑定的接口(IP)和端口(TCP) - 意思它将开始侦听新连接的位置。
现在,所有计算机都有一个名为 localhost 的接口,IP 地址为 127.0.0.1。这是环回接口,不需要启用任何实际硬件。只有在同一台计算机上运行的客户端才能连接到此接口。因此,如果您启动多个仅绑定到 127.0.0.1 的服务器,那么您是完全安全的,不必担心安全问题。
除了 localhost 接口之外,您的计算机还可以有许多其他网络接口,每个接口都有一个或多个 IP。假设您的计算机中有两张网卡连接到两个不同的网络:一张的 IP 为 192.168.1.1,另一张的 IP 为 192.168.2.1。当您启动服务器时,您可以将其绑定到 IP 192.168.1.1,因此只有来自网络 192.168.1.x 的计算机才能连接到它或连接到 IP 192.168.2.1,以便只有来自网络 192.168 的计算机。 2.x 将能够连接到它。此外,您可以将其绑定到 0.0.0.0 IP,这意味着它将接受来自所有接口的连接!
我必须说我不是网络工程师,所以术语可能不是 100% 正确的。
如果您有任何问题,我希望现在更清楚!