2013-10-01 40 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

相關問題