确保它绑定到localhost:8080(即127.0.0.1),而不是所有接口(可能是默认接口).服务器程序通常可以选择绑定哪些IP地址.例如,在Apache中,Listen除了端口号之外,还可以为指令提供IP地址.如果您只绑定127.0.0.1,则扫描外部IP地址的人员不会打开该端口.
答案很长:有人可能会像这样访问您的应用:
如果您访问恶意网站(如果星巴克的任何人中毒DNS缓存或欺骗DNS响应,那么您可能会访问www.google.com上的恶意网站而不知道它),那么攻击者可能会通过DNS将您发送到他的域名服务器(实际上可能在他的笔记本电脑上)用非常短的TTL用他的IP回复相同的查询,然后用127.0.0.1回复,然后再回复他的IP等等.当你被发送到(http:// www.example.com:8080)它被解析为攻击者的IP并且您获得了向同一域和相同端口启动AJAX请求的网站(因此在每个浏览器中都满足相同的源策略)但是由于简短TTL你的缓存中没有域名条目了,所以你再问一遍,这次你得到的答案是127.0.0.1,顺便说一句你自己的环回接口你认为从外面是不可见的 - 它在从外部看不见但从浏览器中可以看到的事实.您的浏览器将很乐意在127.0.0.1:8080连接到您的应用程序,并使用另一个AJAX连接或任何其他辅助渠道将请求代理给攻击者.Voilà,您的应用程序现已连接到世界!
像这样的事情发生在野外,所以要小心.有时人们甚至可以通过NAT和防火墙这样的路由器访问管理界面.坦率地说,我很害怕所有回复告诉你无法访问在localhost上运行的任何东西.你要小心你做什么.