2012-07-13 14 views
6

हम अपने वेब एप्लिकेशन के लिए टॉमकैट 7 का उपयोग कर रहे हैं। हम एक एक्सएमएल आधारित एपीआई प्रदान करते हैं ताकि हमारे ग्राहक मशीन से मशीन के रास्ते में हमारे सर्वर के साथ संवाद कर सकें (कोई वेब ब्राउज़र आवश्यक नहीं है)। अनुरोधों को सर्वलेट द्वारा संसाधित किया जाता है।टोमकैट और बाढ़ संरक्षण

हमें उपयोगकर्ताओं को लगातार कई अनुरोध भेजने से रोकने की आवश्यकता है। हमारे द्वारा प्रदान की जाने वाली कुछ सेवाओं में परिणामों के लिए मतदान शामिल है और उपयोगकर्ता बिना किसी रुकावट के लूप में अनुरोध कर सकते हैं, प्रति सेकंड दर्जनों अनुरोधों को कुछ भी नहीं कर सकते हैं।

हम बेकार अनुरोधों से बाढ़ से खुद को कैसे बचा सकते हैं? क्या एक ही आईपी से उत्पन्न होने वाले बहुत से अनुरोध होने पर सर्वलेट एंट्री लेवल पर अनुरोधों को अवरुद्ध करने का कोई आसान तरीका है? क्या इस समस्या से निपटने के लिए टोमकैट में कुछ बनाया गया है?

उत्तर

4

मान लें कि आप टोमकैट के सामने अपाचे रिवर्स-प्रॉक्सी का उपयोग कर रहे हैं (यदि आप नहीं हैं), तो अपाचे परत पर mod_cband का उपयोग करें।

2

आप अपना खुद का कोड कर सकते हैं।

यह देखने के लिए शुरुआती बिंदु Servlet API होगा, विशेष रूप से फ़िल्टर इंटरफ़ेस और SerlvetRequest इंटरफ़ेस की getRemoteHost() विधि।

फ़िल्टर कार्यान्वयन लिखने के लिए पर्याप्त आसान होना चाहिए जो प्रत्येक होस्ट से अनुरोधों की गिनती संग्रहित करता है और सीमा पार होने पर कार्रवाई करता है।

+1

बोलते हुए, यहां कुछ ऐसा है जो मैंने इस उद्देश्य के लिए एक साथ रखा है: http://code.google.com/p/zxing/source/browse/trunk/zxingorg/src/com/google/zxing/web/DoSFilter। जावा यह काफी बुनियादी है, लेकिन इस उद्देश्य के लिए पर्याप्त हो सकता है। –

0

यदि आप जावा-केवल समाधान चाहते हैं तो स्प्रिंग सुरक्षा में अपाचे httpd के mod_security की कई सुविधाएं हैं।

0

अपाचे के mod_evasive या mod_security यहाँ अपनी जरूरत के लिए कवर कर सकता। आप अधिक जटिल गंभीर हमलों के लिए क्लाउडफ्लारे पर विचार कर सकते हैं जिसके लिए हार्डवेयर सुरक्षा की आवश्यकता होगी।

संबंधित मुद्दे