【问题标题】:Turn an AppEngine Blacklist into a Whitelist将 AppEngine 黑名单变成白名单
【发布时间】:2011-05-06 01:01:21
【问题描述】:

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

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

我不是网络专家,所以我希望能得到一些帮助: 如果我想限制对 130.100.120.0 到 130.100.123.255 范围内 IP 的访问,可以使用 AppEngines 黑名单机制完成,还是应该在我的应用程序中进行检查?

谢谢。

【问题讨论】:

    标签: python google-app-engine firewall whitelist blacklist


    【解决方案1】:

    不,AppEngine 黑名单功能(记录在here 更多地用于防止拒绝服务攻击等。因此,包含黑名单 IP 的文件最多可以包含 100 个 IP。因此,黑名单不是t 真正用于工业强度的访问控制。

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

    【讨论】:

    • +1。当您对您的应用程序进行检查时,您可能会考虑使用PySubnetTree。这可能有助于您轻松管理哪些 IP 块被列入白名单,并快速验证连接请求是否在白名单中。
    • 谢谢,但看起来它依赖于一些 C 扩展,您无法在 AppEngine 上使用这些扩展
    • 更重要的是,黑名单并不能保证它会阻止来自给定 IP 的所有请求 - 它旨在改善 DoS 攻击 - 所以它确实使访问控制不佳。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 2012-04-22
      相关资源
      最近更新 更多