2011-08-04 19 views
5

एक छोटी पृष्ठभूमि को हैक करने का प्रयास करने के लिए सर्वोत्तम दृष्टिकोण। मैं एक गैर-लाभकारी संगठन के लिए वेबसाइट चलाता हूं। मैंने मृत लिंक को देखने के बाद साइट पर एक लिंक चेकर चलाया, और कुछ और पाया। इसलिए, मैंने किसी भी असफल लिंक को लॉग करने के लिए एक कस्टम 404 पृष्ठ लागू किया। यह मुझे मेरे टूटे हुए लिंक को ठीक करने और दूसरों को चेतावनी देने की अनुमति देता है जो हमारे लिंक को तोड़ते हैं।वेबसाइट

यह काफी तेजी से एक दिलचस्प निष्कर्ष करने के लिए नेतृत्व: वे आश्चर्यजनक सुरक्षा को दरकिनार और मानक सॉफ्टवेयर संकुल में कमजोरियों कि आमतौर पर साइटों पर पाए जाते हैं, phpmyadmin, मंचों की तरह का दोहन करने के प्रयास के बहुत सारे हैं, आदि

मैं लॉग इन करें अपराधियों के आईपी पते, और लगभग पूरी तरह से पाते हैं कि वे अमेरिका से नहीं हैं, और हमारा संगठन अमेरिका में एक छोटे से क्षेत्र पर सख्ती से केंद्रित है, इस प्रकार मैंने सोचा कि PHP के माध्यम से, बस एक सूची को लोड करना हेडर फ़ाइल में अपराधी, जो सभी पृष्ठों द्वारा उपयोग किया जाता है, और अगर वे सूची से संबंधित हैं तो बस एक संदेश के साथ मर जाते हैं।

क्या यह एक अच्छा दृष्टिकोण है? क्या कुछ बेहतर है? मुझे क्या चिंतित है, यह है कि वे एक भेद्यता पाते हैं और पहुंच प्राप्त कर सकते हैं।

+2

यदि आपको केवल 40 आई त्रुटियों को उत्पन्न करने वाले सभी आईपी को प्रतिबंधित करने की आवश्यकता है - fail2ban सॉफ़्टवेयर – zerkms

+0

पर यह भयानक है। तो यदि आप एक यूआरएल गलत वर्तनी करते हैं तो आपको प्रतिबंधित कर दिया जाता है? या मैंने आपको गलत समझा। –

+0

हां, आप गलत समझते हैं। केवल हैकिंग प्रयासों को – steveo225

उत्तर

4

अमेरिका के बाहर आईपीएस का ब्लैकलिस्टिंग करने की आपकी विधि थोड़ी देर के लिए थोड़ा प्रभावी होगी, लेकिन वास्तव में लंबे समय तक हारने वाली लड़ाई होगी। यदि आप अपने उपयोगकर्ता आधार को प्रभावित किए बिना यूएस के बाहर आईपी को बाहर कर सकते हैं, तो आप PHP कोड में देश की पहचान करने और बाहर के लोगों तक पहुंच से इनकार करने के लिए Maxmind GeoIP जैसी सेवा का उपयोग कर सकते हैं।

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

हालांकि, कार्रवाई का सबसे महत्वपूर्ण तरीका हमेशा यह सुनिश्चित करना है कि फ़ोरम, ब्लॉग, विकी आदि जैसे आपके तृतीय पक्ष सॉफ़्टवेयर पैकेज सुरक्षा पैच के साथ अद्यतित रहें। आम वेब अनुप्रयोगों के लिए शोषण बहुत प्रसिद्ध और व्यापक रूप से प्रचारित हैं, इसलिए उन्हें पैच रखने के लिए महत्वपूर्ण है।

Addendum कभी-कभी नए शोषण के बराबर रखने के लिए http://www.exploit-db.com/ पर ध्यान देने की आदत बनाएं।

+0

पर प्रतिबंध लगा दिया गया है, मुझे लगता है कि खराबियों को बरकरार रखने में सबसे ज्यादा मदद मिली है कि साइट केवल घर सॉफ्टवेयर में उपयोग करती है, इसलिए अद्यतित रहना मंथन है। ईमानदारी से, अवरुद्ध आईपी शायद अंततः सूची के बजाय डेटाबेस में समाप्त हो जाएंगे, अभी सूची काफी छोटी है। – steveo225

1

यूएस से आईपी को नाखून करने के लिए, MaxMind GeoLite Country करना चाहिए।
यह मुफ्त और जीपीएल और उनकी साइट पर बहुत अच्छी तरह छुपा हुआ है।

अधिकांश आईपी वहाँ लोकेटर इस नि: शुल्क डीबी,
का उपयोग करें और मेरे अनुभव में यह हमेशा देश सही मिलता है।

(एक है कि उन लोगों से खरीदने लायक है GeoIP शहर डेटाबेस है, डेटा उस तरह अधिक परिवर्तनशील है और GeoLite City हो जाता है समय की यह सही कम से कम 70% - कुछ बहुत शानदार त्रुटियों के साथ)

जियोलाइट डेटाबेस और बाइनरी स्वाद में आता है।
बाइनरी में एक PHP लाइब्रेरी है जो अनुक्रमित लुकअप करता है।

मैं उन्हें सीधे प्रतिबंधित नहीं करता, वैसे भी

क्यों? बहुत से कारण।
एक है: लोग कभी-कभी विदेश यात्रा करते हैं, और हो सकता है कि वे पवित्र स्थलों के दौरान अपनी साइट को देखना चाहें।

यदि मैं आप थे, तो मैं पृष्ठ पर एक रिकैप्चा डाल दूंगा, और यदि वे इसे पास करते हैं, तो उन्हें गुप्त दैनिक कुकी सेट करें।
कुछ की तरह:

hash('md5',$salt.date('Ymd')); 

(md5 कि के लिए नहीं किया जाना चाहिए, वैसे भी - SHA-1 का उपयोग कर हैश calc और दिन के लिए यह कैश)

आप सेट कर सकते हैं गुप्त दैनिक कुकी जो आईपीओ को जियोलाइट टेस्ट पास करते हैं, भी।
तो आपको हर एक यात्रा पर इसे देखने की ज़रूरत नहीं है।