运行 python -m http.server XXXX 是不是安全

Posted

技术标签:

【中文标题】运行 python -m http.server XXXX 是不是安全【英文标题】:Is it safe to run python -m http.server XXXX运行 python -m http.server XXXX 是否安全 【发布时间】:2017-05-14 19:35:15 【问题描述】:

我正在尝试运行我已经启动的 html 项目。我需要在本地服务器上执行此操作才能达到 Java 方面的全部功能。有人告诉我“python -m http.server 8000”是一个很好的方法,但是这样安全吗?我的计算机上的信息会被泄露,还是 100% 是本地的?我只是问,因为我的防火墙不喜欢我运行这个服务器的想法。

在此先感谢您。

【问题讨论】:

【参考方案1】:

默认情况下,HTTP 服务器绑定到所有向世界开放的接口,因此防火墙会抱怨。如果你只从 localhost 使用它,使用--bind 参数只绑定到 localhost。

完整的命令: python -m http.server 8000 --bind 127.0.0.1

来源:https://docs.python.org/3/library/http.server.html

注意:--bind 是在 Python 3.4 中引入的,因此您需要 3.4 或更高版本才能使用--bind

【讨论】:

谢谢 tiblu,如果出于好奇,我可能会问 127.0.0.1 来自哪里,或者这是某种通用的本地主机号? 好问题! IPv4 标准只是保留了 127.0.0.1/8 用于环回,但我不知道为什么是 127.0.0.1 而不是别的。也许一些谷歌和维基会带来一些亮点 - en.wikipedia.org/wiki/Localhost。让我们知道您是否遵循了。 没有找到答案,但觉得这很有趣: 虽然我们都知道并喜欢 127.0.0.1 作为本地主机,但值得注意的是,它不会永远是本地主机。 127.0.0.1 是在 IPv4 通信中指定 localhost 的方式,随着 IPv6 慢慢接管,它将由一个更直观的数字指定:0:0:0:0:0:0:0:1。

以上是关于运行 python -m http.server XXXX 是不是安全的主要内容,如果未能解决你的问题,请参考以下文章

Python命令开启http.server服务器

Apache Http Server

什么是 Python 的 http.server(或 SimpleHTTPServer)更快的替代方案?

Python快速创建一个简易 HTTP 服务器(http.server)

python3用http.server模块搭建简易版服务器

python http server handle json