我在质疑是否需要验证req.ip
或req.path
服务器端等字段。
它归结为一个问题:客户端是否可以设置类似.set('Remote-Addr', <Malicious JavaScript>)
的内容并将其成功传播到我的Node或Express中间件?
感谢您的帮助!
答案 0 :(得分:0)
无法验证源IP,特别是涉及代理时。在代理的情况下,一串IP地址应该放在http头中,但这肯定是伪造的,所以表达认为原始IP是不可信任的。这可能是准确的,但不能保证准确。
req.path
完全是本地的,不涉及任何客户端标头,也不受任何客户端欺骗。它只来自到达您服务器的实际HTTP请求URL。它与实际请求URL不同的唯一方法是,如果您使用路由器的挂载点,在这种情况下,路径的挂载点部分将被express删除。或者,如果您自己的中间件试图弄乱它。