如何在Python中限制对localhost的页面访问?

时间:2016-12-01 10:57:14

标签: python security localhost port

使用Python的SimpleHTTPServer,我该怎样才能使服务器只响应来自本地机器的请求?

是否存在与语言无关的方法?也许通过使用一个不向公众开放的特定端口,或者告诉防火墙不允许从外部访问该端口?

此问题类似于this one,但特定于使用Python的SimpleHTTPServer编写的服务器。

1 个答案:

答案 0 :(得分:2)

您可以使用环回接口。 localhost127.0.0.1指的是本地地址,绕过完整的网络堆栈,无法通过网络访问。见wikipedia

使用SimpleHTTPServer example

import SimpleHTTPServer
import SocketServer

PORT = 8000

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler

httpd = SocketServer.TCPServer(("", PORT), Handler)

print "serving at port", PORT
httpd.serve_forever()

我们可以绑定到特定地址,您可以使用分配给您的机器/接口的地址,或者在您的情况下,使用环回设备。

httpd = SocketServer.TCPServer(("127.0.0.1", PORT), Handler)

然后,您可以http://127.0.0.1:8000/http://localhost:8000/访问服务器。使用您的机器分配的IP地址无法从本地计算机和网络访问服务器。

以下内容可能会提供其他信息