首先,要知道,无论你做什么,总有风险,所以你应该考虑减轻这些风险。您应该考虑的一些主要攻击点:
- dyndns -您的密码有多强,您是否通过https登录?如果你的账户被泄露,有人可以劫持你的客户。
- router --您的路由器是否会被破坏,允许本地网络上不必要的通信量?为此,如果您使用的是商业路由器(而不是直接连接到广域网的计算机,我建议您不要这样做),那么请确保使用最新的firmware.
- operating system更新它--您的操作系统可能存在漏洞。很好的是,您只接受端口80上的通信,但仍然对其进行修补,并在发现漏洞时注意漏洞。
- web服务器--这是一个很大的问题,因为它负责处理传入的请求。利用这里的漏洞可以让人接管您的计算机。考虑使用http auth锁定这里的访问权限。它不会阻止真正想要通过的人,但它会阻止搜索引擎和许多脚本孩子,以防你对itself.
- web应用程序有问题--我这里不会提到常见的攻击(sql,xss,csrf,.)因为这需要一本书,但请记住,如果你的客户以外的其他人看到你的应用程序,你可能会公开你想要保密的数据,而取决于你的应用程序做什么/它是如何编码的/它运行在哪个平台上,你可能会让你的电脑暴露在某种高贵的陷阱中。将其锁定在防火墙(路由器)和简单的auth后面是一个很好的开始,而且可能已经满足了您的需要,但请注意您的访问和系统日志,并定期更改http auth密码(因为您正在将它们交给clients).
- (these,因此我相信您也可以指出许多其他攻击向量)
其他想法:
- 只打开演示站点,并对每个演示使用不同的auth凭据。这样,您就不必过多地关心密码安全性,并且在不期望密码安全性的情况下,您可以减少受到攻击的风险。(因此,在没有演示的情况下关闭转发)
- 为这些演示程序提供了一个廉价的rackspace、ec2、linode或一个免费的heroku测试帐户。您仍然需要担心服务器和应用程序的安全性,但是如果它们被破坏了,您就不会丢失家庭computer.
- similar上的个人数据,如果您必须在您的家庭网络上运行,请考虑获得一个仅用于托管站点的廉价linux盒,如果您的应用程序正在发送/接收机密数据,则将其放在一个独立的网络分区上总是一个好主意。