2013-10-01 92 views
1

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

回答

5

否由于它在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你是完全安全的,不应该担心安全。

除了本地主机接口之外,您的计算机还可以有多个其他网络接口,每个接口都有一个或多个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%正确的。

我希望现在更清楚,如果你有任何问题,只要问!

+0

谢谢。你能否指点我一个可以深入挖掘层次的资料来源?为了我的理解。 – Medorator

+0

那么接口和端口绑定不是一个Django特定的主题,但更多的网络相关。我会在这里详细解释一下我的答案。 – Serafeim

+0

金字塔框架建议'server = make_server('0.0.0.0',8080,app)'这里http://www.pylonsproject.org/projects/pyramid/about。那是不安全的? – Medorator

相关问题