想象一下,您的本地计算机上有一台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中的任何用户都可以使用我的软件,并且必须防止远程访问。
答案 0 :(得分:1)
我相信你处理它的方式已经足够了。关于它是跨平台的,我相信它是因为Windows(从Windows 7开始)也将localhost映射到127.0.0.1但是对于以前的版本,你必须在主要主机文件中定义localhost。