java - 限制 Web 服务访问内部 IP 地址

标签 java web-services security

与此类似question我想限制一些 Jersey 网络服务供内部办公室使用。使用 HttpServletRequest 检查 IP 地址是否足够安全?具体来说,是否存在 request.getRemoteAddress() 返回的值不可信的情况?我的代码是这样的:

    @POST
    @Path("update")
    public Response updateCityInfo(@Context HttpServletRequest request) {
        String remoteAddress = request.getRemoteAddr();
        if (!remoteAddress.startsWith("10.10")) {
            return Response.status(Status.FORBIDDEN).build();
        }
        ...

我不太关心安全性,我只是希望某个网络内的任何人都能够访问此端点。

最佳答案

这可能有用。不过,也有一些注意事项。对于初学者来说,如果您位于负载均衡器/代理后面,则远程地址可能是代理的地址,而不是发起请求的客户端的地址。由于负载均衡器通常位于防火墙内部,因此它们可能有一个 10.* 地址。

这似乎应该在防火墙级别处理,而不是在应用程序级别处理。

关于java - 限制 Web 服务访问内部 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20085335/

相关文章:

java - 来自不同网址时的不同登录

security - 私钥密码的目的是什么?

java - 用Java格式化pdf

java - Web Service的压缩结果

java - 在不同的 JAX-WS Web 服务中利用通用实体类

security - Couchbase 存储桶的密码更改程序

java - 如何在 HttpServletRequest 中添加一个 http 协议(protocol) header value ?

java - 如何将 "export"映射作为 Java EE 上的网站参数

java - 系统存储库未显示存储库详细信息

c# - 编写 Windows Web 服务但不确定使用哪种语言?