Python 将AppEngine黑名单变为白名单

Python 将AppEngine黑名单变为白名单,python,google-app-engine,firewall,whitelist,blacklist,Python,Google App Engine,Firewall,Whitelist,Blacklist,AppEngine允许定义黑名单,禁止从某些IP范围访问(http://code.google.com/appengine/docs/python/config/dos.html) 我想做的是相反的:一个白名单,只允许从某些IP范围访问 我不是什么网络专家,因此我希望能得到一些帮助: 如果我想将对IP的访问限制在130.100.120.0到130.100.123.255之间,那么可以使用AppEngines黑名单机制来实现,还是应该在应用程序中进行检查 谢谢。不,AppEngine黑名单功能(有

AppEngine允许定义黑名单,禁止从某些IP范围访问(http://code.google.com/appengine/docs/python/config/dos.html)

我想做的是相反的:一个白名单,只允许从某些IP范围访问

我不是什么网络专家,因此我希望能得到一些帮助: 如果我想将对IP的访问限制在130.100.120.0到130.100.123.255之间,那么可以使用AppEngines黑名单机制来实现,还是应该在应用程序中进行检查


谢谢。

不,AppEngine黑名单功能(有文档记录)更能防止拒绝服务攻击等。因此,包含黑名单IP的文件最多可以包含100个IP。因此,黑名单并非真正用于工业级访问控制


鉴于此,您唯一的选择似乎是在应用程序中进行检查。

创建一个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);
}

+ 1。当您使用应用程序进行检查时,您可能会考虑使用。这可以帮助您轻松地管理哪些IP块是空白的,并快速验证连接请求是否在白名单中。谢谢,但看起来它依赖于一些C扩展,而不能在AppEnnimeORE上使用,这是黑名单。esn不能保证它会阻止来自给定IP的所有请求——它的设计目的是为了改善DoS攻击——因此它确实会造成访问控制不佳。