2010-11-06 106 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); 
} 
相關問題