拒绝从Docker中运行的服务端点调用'localhost',0.0.0.0或127.0.0.1

问题描述

我有一个公开端点的服务,其主要目的是根据提供的JSON数据(URL,端口,正文,标头等)执行自定义HTTP调用。 该服务在Cloud环境中的Docker容器内运行。

如何防止用户能够向服务器本身发出ex的循环调用post http://myservice.com/invoke body: {'url': 'localhost:8080/invoke','method': 'get'}

以及如何拒绝“ localhost”,“ 0.0.0.0”或“ 127.0.0.1” URL,以便服务器无法在容器内找到并调用它们并执行对未公开端点的请求? (例如,我的服务还具有'\stats'端点,该端点无法从公共VPC访问,但可以在私有VPC内访问,因此调用'myservice.com/invoke {'url': 'localhost:8080/stats','method': 'get'}'将使该端点对私有VPC之外的用户可访问)。

我简单的Dockerfile:

FROM registry.access.redhat.com/ubi8/ubi-minimal
copY build/my-service-1.0-SNAPSHOT-runner my-service
RUN chmod +x my-service
EXPOSE 8080
CMD ["./my-service"] 

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)