正确/安全地配置Django以便在localhost上进行开发

时间:2013-10-01 06:39:37

标签: django security webserver localhost

我正在使用Django开发一个Web应用程序。当我运行命令manage.py runserver时,我可以访问http://localhost (127.0.0.1:8000)的网站。如果我在进行开发时保持全天候运行,是否存在安全风险?我是否需要在路由器上阻止此端口,以便无法从外部访问它?

1 个答案:

答案 0 :(得分:5)

不存在安全风险,因为它在localhost接口(127.0.0.1)中运行,因此只能从您的计算机访问。

只有在将其运行到0.0.0.0接口(manage.py runserver 0.0.0.0:8000)时才会存在安全风险。

详细说明我的答案:当一个侦听连接的应用程序(例如django开发服务器)想要运行它时,必须定义它想要绑定的接口(IP)和端口(TCP) to - 意味着它将开始侦听新连接。

现在,所有计算机都有一个名为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%正确。

如果您有任何疑问,我希望现在更清楚了!