蟒蛇。需要确保连接是从本地机器进行的吗?

时间:2013-12-25 02:39:31

标签: python security http ftp twisted

想象一下,您的本地计算机上有一台HTTP服务器,这是一个典型的Python / Twisted应用程序。此服务器用于访问本地数据,服务器仅用作GUI界面。因此,用户可以使用他的Web浏览器或特殊应用程序(如Web浏览器)来访问其本地数据。

现在您要确保只有身临这台机器的本地用户才能访问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,但据我所知,这是相反的方向:这是为了让用户信任服务器,而不是服务器信任用户。

使用CAPTCHA是一种解决方案。但我根本不喜欢这个(它会让用户感到紧张),这对FTP服务器不起作用。

每次应用程序启动时我也会使用随机端口号。

未定义互联网连接的类型 - 这是一个p2p应用程序。 WEB中的任何用户都可以使用我的软件,并且必须防止远程访问。

1 个答案:

答案 0 :(得分:1)

我相信你处理它的方式已经足够了。关于它是跨平台的,我相信它是因为Windows(从Windows 7开始)也将localhost映射到127.0.0.1但是对于以前的版本,你必须在主要主机文件中定义localhost。