【发布时间】:2013-12-25 02:39:31
【问题描述】:
假设您在本地机器上有一个 HTTP 服务器,这是一个典型的 Python/Twisted 应用程序。此服务器用于访问您的本地数据,服务器仅用作 GUI 界面。所以用户可以使用他的网络浏览器或特殊的应用程序(就像一个网络浏览器)来访问他的本地数据。
现在您要确保只有实际坐在这台机器附近的本地用户才能访问 HTTP 服务器。
我还有 FTP 服务器,它也必须以同样的方式保护。
目前我正在为我的 HTTP 服务器运行这样的代码:
class LocalSite(server.Site):
def buildProtocol(self, addr):
if addr.host != '127.0.0.1':
print 'WARNING connection from ' + str(addr)
return None
try:
res = server.Site.buildProtocol(self, addr)
except:
res = None
return res
所以我现在只是检查 IP 地址,我不确定这是否足够。 有什么方法可以从远程机器模拟本地 IP。? 好吧,如果坏人可以访问我的操作系统,我将无法保护 - 但这不是我的交易。我的防火墙和防病毒软件应该关心这个,对吧?
无论如何,我想听听有关增加此类 HTTP 服务器安全性的任何额外想法。
也许我们可以使用 MAC 地址来验证连接。? 检查本地机器上的进程并检测哪些实际执行连接?
我们可以使用 HTTPS,但据我了解,这是相反的:这是让用户信任服务器,而不是服务器信任用户。
使用验证码是一种解决方案。但我根本不喜欢这个(它让用户紧张),这对 FTP 服务器不起作用。
每次应用程序启动时我也使用随机端口号。
未定义互联网连接类型 - 这是一个 p2p 应用程序。 WEB 中的任何用户都可以使用我的软件,并且必须防止远程访问。
【问题讨论】:
-
应该没问题。 This问题可以详细说明。
-
好的。那篇文章非常接近我的问题。然而,人们都在谈论 Linux(不是吗?),但我希望处理任何操作系统。据我了解,数据包可能会被接受,但响应会消失。所以我也不同意这一点。反正!感谢您的帖子!
标签: python security http ftp twisted