【发布时间】:2016-01-22 17:08:32
【问题描述】:
我们使用 Spring 创建了一个 Rest API。 没有实施安全措施。
现在我们将使用 Apigee 进行 API 管理,它将提供各种服务,用于监控、安全等。 我们所有的客户现在都应该使用 Apigee 调用我们的 API,而不是直接在我们的服务器上调用我们的服务。
我们如何强制绕过 Apigee 是不可能的?
我想,在我们的代码中,我们可以有一个过滤器并使用“Access-Control-Allow-Origin”属性,例如:
public class OurFilter implements Filter
{
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException,
ServletException {
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE");
chain.doFilter(req, res);
}
}
“*”将替换为 Apigee Ip、域名或其他内容。
我的问题是这有多安全。人们可以在他们的 http 请求中添加一个 header 并直接成功地调用我们的服务器吗?或者它是否检查低级别单个“IP数据包”上的原始IP。
如果仅通过编辑 http 标头就可以进行欺骗,那么使绕过 Apigee 成为不可能的正确方法是什么?
非常感谢
【问题讨论】:
标签: java api security ip apigee