सुरक्षा कारणों से, मेरे वेब सर्वर पर एक निश्चित फ़ाइल है जिसे मैं एक्सेस की निगरानी करने में सक्षम होना चाहता हूं। हर बार जब इसे एक्सेस किया जाता है, तो मैं एक MySQL लॉग तालिका में एक प्रविष्टि जोड़ना चाहता हूं। इस तरह, मैं वेब अनुप्रयोग के भीतर से सक्रिय रूप से सुरक्षा उल्लंघनों का जवाब दे सकता हूं।आप वेब सर्वर पर किसी फ़ाइल की निगरानी कैसे करते हैं और डेटाबेस (MySQL) में, आईपी पते द्वारा आदर्श रूप से प्रत्येक एक्सेस लॉग करते हैं?
उत्तर
अपाचे HTTP सर्वर लॉगिंग क्षमताओं प्रदान करता है।
सर्वर एक्सेस लॉग सर्वर द्वारा संसाधित सभी अनुरोधों को रिकॉर्ड करता है। एक्सेस लॉग का स्थान और सामग्री CustomLog निर्देश द्वारा नियंत्रित होती है। LogFormat निर्देशों का उपयोग लॉग की सामग्री के चयन को सरल बनाने के लिए किया जा सकता है। यह खंड वर्णन करता है कि एक्सेस लॉग में जानकारी रिकॉर्ड करने के लिए सर्वर को कॉन्फ़िगर कैसे करें।
इसका उपयोग किसी फ़ाइल को लॉग लिखने के लिए किया जा सकता है। यदि आपको एक MySQL तालिका में स्टोर करने की आवश्यकता है, तो डेटाबेस में फ़ाइल आयात करने के लिए क्रॉन जॉब चलाएं।
लॉग पर आगे की जानकारी यहां है: http://httpd.apache.org/docs/1.3/logs.html#accesslog
फ़ाइल तीन अंक से पहुँचा जा सकता है:
- प्रत्यक्ष फाइल सिस्टम का उपयोग कर सकते
www.example.com/importantfile.jpg
तरह यूआरएल के लिए कॉल (अपाचे फ़ाइल में कार्य करता है)- फ़ाइल को पढ़ने वाले आपके सर्वर
www.example.com/readfile.php?name=important.jpg
पर कुछ php स्क्रिप्ट पर कॉल करें।
यदि आप केवल 2 मामले के बारे में चिंतित हैं तो ऋषि दुआ के समाधान की जांच करें।
लेकिन यदि आप उससे अधिक चाहते हैं तो आपको fileatime() कॉल के साथ एक स्क्रिप्ट लिखनी चाहिए और फिर उदाहरण के लिए हर मिनट चलाने के लिए इसे क्रॉन में जोड़ें।
इसके लिए स्यूडोकोड:
<?php
$previous_access_time = get_previous_access_time(); // get the previous last access time from you remembered in db or textfile or whatever
$current_access_time = fileatime('path/to/very_important_file.jpg');
if ($previous_access_time != $current_access_time) {
log_access_to_db();
save_new_access_time(); // update the new last access time
}
यह समाधान हालांकि कुछ समस्या है। पहला यह है कि आप केवल एक्सेस समय प्राप्त कर सकते हैं, लेकिन उपयोगकर्ता-आईडी या आईपी जो फ़ाइल तक पहुंचे हैं। दूसरा यह है कि मैनुअल कहता है, कुछ यूनिक्स सिस्टम एक्सेस समय को अपडेट नहीं करते हैं और इसलिए समाधान विफल हो जाएगा।
आप को गंभीरता से सुरक्षा को लेकर चिंतित हैं, तो मुझे लगता है कि आप util this
इसके PHP7 से हटा दिया गया की तरह लेकिन जो इस पोस्ट पाता है किसी और के लिए कुछ लेखा परीक्षा के लिए जाँच करने के लिए है वहाँ के भीतर कई विकल्प होते हैं एफएएम (अब पीईसीएल) एक्सटेंशन। यह फ़ंक्शन http://php.net/manual/en/function.fam-monitor-file.php वर्णन करता है कि
अतिरिक्त रूप से आप http://php.net/manual/en/function.stat.php के साथ फ़ाइलों की स्थिति के बारे में बहुत अधिक जानकारी प्राप्त कर सकते हैं। इसे एक क्रॉन या नींद संचालित स्क्रिप्ट के भीतर रखें और फिर आप बदल सकते हैं जब यह बदल गया।
- 1. आप अपनी वेब सेवाओं की निगरानी कैसे करते हैं?
- 2. आप सर्वर पर अपना वेब एप्लिकेशन कैसे अपडेट करते हैं?
- 3. आप कई वेबसाइटों की उपलब्धता की निगरानी कैसे करते हैं
- 4. आप MySQL डेटाबेस में सभी ट्रिगर कैसे सूचीबद्ध करते हैं?
- 5. आप किसी वेब पेज में .epub कैसे एम्बेड करते हैं?
- 6. आप डेटाबेस में सेल फोन नंबर कैसे स्टोर करते हैं?
- 7. आप एक sybase डेटाबेस में किसी तालिका से जुड़े ट्रिगर्स की पहचान कैसे करते हैं?
- 8. आप डेटाबेस पासवर्ड कहां स्टोर करते हैं?
- 9. आप MySQL डेटाबेस को कैसे अचयनित करते हैं?
- 10. आप एक MySQL डेटाबेस में अप्रयुक्त अनुक्रमणिका की पहचान कैसे करते हैं?
- 11. आप एमएस-एक्सेस क्वेरी पर कैसे टिप्पणी करते हैं?
- 12. आप वेबसाइट की जांच कैसे करते हैं?
- 13. आप दूरस्थ सर्वर पर स्वचालित गिट खींच कैसे करते हैं?
- 14. डेटाबेस लॉग बनाम फ़ाइल लॉग
- 15. वेब सर्वर कैसे काम करते हैं?
- 16. आप विंडोज सर्वर पर डेवलपर पहुंच कैसे प्रबंधित करते हैं?
- 17. आप डेस्कटॉप पर एक वेब ऐप कैसे तैनात करते हैं?
- 18. "the" शब्द को अनदेखा करते हुए, mysql में शीर्षक से आप कैसे ऑर्डर करते हैं?
- 19. अपाचे पर आईपी पते द्वारा थ्रॉटलिंग अनुरोध?
- 20. Eclipselink: आप प्रत्येक बंडल में EntityManager कैसे प्राप्त करते हैं?
- 21. वेब सर्वर के लिए एकाधिक सर्वर सिंक में कैसे काम करते हैं?
- 22. आप कैसे (यूनिट) डेटाबेस स्कीमा का परीक्षण करते हैं?
- 23. आप अपने उत्पादन जावा एप्लिकेशन में जेएमएक्स के साथ क्या निगरानी करते हैं?
- 24. आप एक फेसबुक उपयोगकर्ता की जानकारी कैसे प्राप्त करते हैं और इसे डेटाबेस में डालते हैं?
- 25. आप django साइट्स पर सर्वर त्रुटियों को कैसे लॉग करते हैं
- 26. क्लोजर में, आप वेब से एक छवि कैसे डाउनलोड करते हैं और इसे अपने फ़ाइल सिस्टम में सहेजते हैं?
- 27. आप आरएसएस फ़ीड कैसे उत्पन्न करते हैं?
- 28. आप पाइथन में फ़ाइल प्रकार को कैसे उपclass करते हैं?
- 29. आप किसी एक्सटेंशन से फ़ायरबग पर कैसे लॉग ऑन करते हैं?
- 30. आप php में डेटाबेस कनेक्शन कैसे प्रबंधित करते हैं?
आप फ़ाइल एक्सेस ईवेंट को प्रोग्राम से निर्देशिका के लिए भी देख सकते हैं यानी ओ/एस एक कार्यक्रम उत्पन्न करेगा और आपके कार्यक्रम की दिनचर्या को कॉल करेगा। बस उस डेटाबेस को लॉग करें और जो भी आप चाहते हैं वह करें। उदा ,. एसएमएस संदेश आदि भेज सकते हैं शायद दिलचस्प? http://stackoverflow.com/questions/4205815/monitoring-file-and-directory-access-on-linux। यह विंडोज़ पर भी समान है। –