2010-11-06 67 views
5

AppEngine cho phép định nghĩa danh sách đen, để không cho phép truy cập từ một số phạm vi IP nhất định (http://code.google.com/appengine/docs/python/config/dos.html).Biến Danh sách đen AppEngine thành danh sách trắng

Điều tôi muốn làm là nghịch đảo: Danh sách cho phép, chỉ cho phép truy cập từ các Phạm vi IP nhất định.

Tôi không phải là chuyên gia mạng, vì vậy tôi sẽ đánh giá cao một số trợ giúp: Nếu tôi muốn giới hạn quyền truy cập vào IP trong Phạm vi từ 130.100.120.0 đến 130.100.123.255, có thể thực hiện bằng cơ chế danh sách đen AppEngines, hoặc tôi có nên thực hiện việc kiểm tra từ trong đơn đăng ký của mình không?

Cảm ơn.

Trả lời

3

Không, chức năng danh sách đen AppEngine (được ghi thành tài liệu here phục vụ nhiều hơn để ngăn chặn các cuộc tấn công từ chối dịch vụ, vv.), Tệp có chứa IP danh sách cấm tối đa có thể chứa 100 IP. . thực sự dành cho kiểm soát truy cập mạnh công nghiệp

vì điều này, có vẻ như lựa chọn duy nhất của bạn là để làm việc kiểm tra trong phạm vi ứng dụng của bạn

+1

+1 . Khi nào bạn thực hiện việc kiểm tra với ứng dụng của mình, bạn có thể cân nhắc sử dụng [PySubnetTree] (http://www.icir.org/robin/pysubnettree/). Điều này có thể giúp bạn dễ dàng quản lý các khối IP nào được đưa vào danh sách trắng và nhanh chóng xác minh rằng yêu cầu kết nối nằm trong danh sách trắng. –

+0

Cảm ơn, nhưng có vẻ như nó phụ thuộc vào một số C-Extensions mà bạn không thể sử dụng trên AppEngine – Hans

+1

Hơn nữa, danh sách đen không đảm bảo nó sẽ chặn tất cả các yêu cầu từ các IP đã cho - nó được thiết kế để cải thiện DoS tấn công - vì vậy nó làm cho kiểm soát truy cập nghèo thực sự. –

0

Tạo Lọc Servlet một cái gì đó như thế này:..

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); 
} 
Các vấn đề liên quan