-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in 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: