节点服务器:从python请求访问时,远程地址显示本地IP(192.X.X.X)



我有一个使用nginx并监视X-Forwarded-For标头的express服务器。

节点服务器具有以下代码行:

app.set('trust proxy', '127.0.0.1');
app.use(morgan(':remote-addr')); // and other info too

通常,当用户发出请求时,独立于客户端(移动应用程序、脚本等(,显示的IP是远程IP。

最近,我观察到有人试图使用python-requests/2.22.0侵入我的服务器,但远程IP不是他的IP地址,而是192.X.X.X。我试图通过自己访问服务器来复制这一点,但显示了远程地址(全局服务器IP地址(。

你能更好地向我解释一下这是怎么回事吗?如果这是我应该担心的事情?

他们从未通过Nginx访问过您的服务器;检查日志。他们将本地连接头直接发送到托管服务器的IP:端口。如果您的安全策略设置不正确,这可能会造成损害,它可能会泄露站点IP,并可能使攻击者在没有响应和限制的情况下拥有进入服务器的自由路径。

随着我们变得越来越可怕,用户可能会发起BGP劫持,并接管将用户发送到服务器端点的中继点;这是一个YouTube或谷歌更多关于。

最后,我们要知道,大多数托管公司都允许私人网络,并且确实提供了一些防火墙来使用,但大多数用户认为这是安全的,而事实并非如此!这些专用网络将您连接到数百个->机架或区域中的数千台服务器。因此,如果攻击者在你的服务器旁边买了一台服务器(很可能是机器人(,他们可以扫描私人网络,寻找一些有趣的时间,这是违反TOS的,但主机没有检查到这一点,也没有确保它的安全。

在你的情况下,听起来服务器正在响应整个互联网,机器人正在尝试;尝试将Node.js服务器设置为仅本地主机,位于443端口或其他端口,并通过nginx进行托管。这样,每当有人插入你的IP或域名时,nginx就会将其转发到本地资源。有些人不能只使用IP+Node.js端口玩游戏。如果你这样做,用户仍然可以用假IP发送报头,但这不会导致IP泄漏,或者任何不好的结果,除非该IP在你的网站上有超级功能,你的网站的任何过滤器都不应该说192.168.x.x获得ADMIN模式。你可以感到自信。

最新更新