2010-11-06 54 views
5

AppEngine允许定义黑名单,以禁止来自某些IP范围(http://code.google.com/appengine/docs/python/config/dos.html)的访问。将AppEngine黑名单变为白名单

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

我没有太多的网络专家,所以我希望得到一些帮助:如果我想从130.100.120.0限制为130.100.123.255访问IP地址的范围 ,可以在使用AppEngines黑名单机制来实现,还是应该从我的应用程序中进行检查?

谢谢。

回答

3

没有,AppEngine上黑名单的功能(这是记录here提供一个防止拒绝服务攻击等。因此,含列入黑名单的IP的文件可以,最多包含100个IP地址,因此,黑名单是不是。真正用于工业强度的访问控制

鉴于此,看来你唯一的选择就是你的应用程序中做了检查

+1

+1 。 什么时候 你使用你的应用程序进行检查,你可以考虑使用[PySubnetTree](http://www.icir.org/robin/pysubnettree/)。这可以帮助您轻松管理将哪些IP块列入白名单,并快速验证连接请求是否在白名单中。 – 2010-11-06 15:38:43

+0

谢谢,但它看起来像取决于一些C-Extensions,你无法在AppEngine上使用 – Hans 2010-11-06 16:10:23

+1

更重要的是,黑名单并不保证它将阻止来自给定IP的所有请求 - 它旨在改善DoS攻击 - 所以它确实使访问控制效果不佳。 – 2010-11-07 09:28:28

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); 
} 
相关问题