-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
与nginx配合的情况下ip_limit无法获取原始IP #353
Comments
我咋觉得这个需求不太成立呢,限制IP不应该通过HTTP的header来吧,这样的话就会存在一个问题是假如header进行伪造,那么不管哪里的IP都能访问了啊,所以单一的加入感觉会引发更多的问题呢 |
这个场景的前提是: 这种场景下拿到的RemoteAddr是127.0.0.1。就和七层负载均衡转发一样的道理。 |
我怎么觉得,这里nps应该限制的是反代服务器的IP,仅限反代服务器才能访问啊 |
嗯,的确,这种场景下,nps必须限制只有反向代理服务器的IP才能访问,否则有可能才出现伪造header。 |
这里就不像Nginx那么灵活使用变量来判断限制了,至少得加个ip来源的选项,只通过remote或者remote一个范围同时header一个范围,感觉有点杂,我们考虑考虑 |
https://cnlh.github.io/nps/#/description?id=%e8%8e%b7%e5%8f%96%e7%94%a8%e6%88%b7%e7%9c%9f%e5%ae%9eip 如上,在nps代理到后端的时候,nps是已经会添加nps取到的原始地址,放到header头给业务系统。 |
@h-hy 我们计划到0.26的下个功能性版本加入 |
em... 看了代码变更,怎么感觉不太对…… |
场景:
在使用 https://cnlh.github.io/nps/#/nps_extend?id=%e4%b8%8enginx%e9%85%8d%e5%90%88
介绍的与nginx配合的情况下,
ip_limit功能获取到的是127.0.0.1,并且没有通过header获取的逻辑。
https://cnlh.github.io/nps/#/feature?id=%e9%99%90%e5%88%b6ip%e8%ae%bf%e9%97%ae
查阅代码发现是取了http.Request.RemoteAddr,即TCP握手的IP。
建议加上获取nginx的header的配置功能。
The text was updated successfully, but these errors were encountered: