由于我无法在某些使用bearer tokens
发送敏感数据的服务器上使用SSL。我想在用户登录时分配一个IP地址,并将其附加到数据库中的每个JWT,并在刷新之前进行检查(短期访问令牌(。我发现的问题是我不知道如何在后台安全地检索IP。
我已经看到,您可以将app.set('trust proxy', true)
设置为您的express初始化,然后使用req.ip
检索ip地址,但显然,由于app.set信任代理,这意味着攻击者可以修改express接收到的标头,对吗?因此,这将毫无意义,因为任何人都可以伪造ip。
除此之外,有没有其他选择,即不使用ssl,也不使用aes来加密承载令牌?
正如CaptEmulation所提到的,您应该始终在生产服务器上启用SSL,尤其是在对用户进行身份验证时。
话虽如此,我相信在向服务器发送请求时不可能伪造IP地址。IP地址用于将数据路由回攻击者,因此它必须是攻击者的ISP分配的、VPN分配的或代理分配的IP。
重要警告:正如jfriend00所提到的,尽管在没有SSL的情况下不可能伪造IP,但也有可能发起中间人攻击,拦截或操纵用户和服务器之间发送的数据。