将AppEngine黑名单转换为白名单

5
AppEngine允许定义黑名单,以阻止来自某些IP范围的访问(http://code.google.com/appengine/docs/python/config/dos.html)。
我想做的是相反的:白名单,只允许来自某些IP范围的访问。
我不是很擅长网络专业知识,所以我需要一些帮助: 如果我想限制访问130.100.120.0到130.100.123.255范围内的IP,是否可以使用AppEngines黑名单机制,或者应该在我的应用程序内部进行检查?
谢谢。
2个回答

3
不,AppEngine的黑名单功能(文档在此)更多用于防止拒绝服务攻击等。因此,包含被列入黑名单的IP的文件最多只能包含100个IP。因此,黑名单并不真正用于工业级访问控制。
考虑到这一点,似乎您唯一的选择是在应用程序内进行检查。

1
当您使用应用程序进行检查时,可以考虑使用PySubnetTree。这可能有助于您轻松管理哪些IP块被列入白名单,并快速验证连接请求是否在白名单中。 - David Underhill
谢谢,但看起来它依赖于一些C扩展,而你无法在AppEngine上使用。 - Hans
1
更重要的是,黑名单不能保证阻止所有来自给定IP的请求 - 它旨在改善DoS攻击 - 因此它确实是较差的访问控制。 - Nick Johnson

0
创建一个Servlet过滤器。类似这样:
public void doFilter(ServletRequest req, ServletResponse res,
                     FilterChain chain) throws IOException, ServletException {

    // replace with your custom IP checking
    if (!req.getRemoteAddr().equals("127.0.0.1")) {
        HttpServletResponse response = (HttpServletResponse) servletResponse;

        // send any response 
        response.sendError(404);
    }

    filterChain.doFilter(req, res);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接