हमें क्या चाहिये। अतिरिक्त ऑपरेटरों के साथ शब्द ढूँढना

नियंत्रणों का पंजीकरण @Register निर्देश द्वारा किया जाता है, जो आपको एक विशेष सिंटैक्स (घोषणात्मक कस्टम सर्वर नियंत्रण सिंटैक्स) का उपयोग करके पृष्ठ के HTML कोड में उपयोगकर्ता नियंत्रण और सर्वर नियंत्रण का उपयोग करने की अनुमति देता है। इन निर्देशों के विश्लेषण के आधार पर, पेज पार्सर टैग को दिए गए प्रकारों से जोड़ सकता है और, पेज बनाते समय, कस्टम प्रकार के कंटेनर के रूप में पहले से ही नियंत्रण एम्बेड कर सकता है - पेज के कंट्रोल ट्री की शाखाएं।

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

आलेख एक ऐसी विधि का वर्णन करता है जो नियंत्रणों के पंजीकरण को सरल बनाती है।

पंजीकरण निर्देशों के लिए, हम एक सादा पाठ फ़ाइल का उपयोग करेंगे जिसमें हम सभी @ रजिस्टर निर्देश एकत्र करेंगे। चूंकि वर्चुअल पथ का उपयोग उपयोगकर्ता नियंत्रण घोषित करने के लिए किया जा सकता है, और सर्वर नियंत्रण के लिए केवल नामस्थान निर्दिष्ट किए जाते हैं, हम इस फ़ाइल में आवश्यक सभी लिंक एकत्र कर सकते हैं, और एसीएक्स फाइलों के लिंक प्रोजेक्ट में किसी भी फ़ोल्डर के लिए सही होंगे। यहाँ यह फ़ाइल किसी एक प्रोजेक्ट में कैसी दिखती है:


<%@ Register TagPrefix="ch" Namespace="ControlsSharp.HtmlControls" Assembly="ControlsSharp"%>

<%@ Register TagPrefix="cw" Namespace="ControlsSharp.WebControls" Assembly="ControlsSharp"%>

<%@ Register TagPrefix="c" Namespace="ControlsSharp.CustomControls" Assembly="ControlsSharp"%>

<%@ Register TagPrefix="b" Namespace="ControlsBasic.CustomControls" Assembly="ControlsBasic"%>

<%@ Register TagPrefix="cu" TagName="bottommenu" Src="~/UserControls/Menu/cu_menu_bottom.ascx" %>

<%@ Register TagPrefix="cu" TagName="leftmenu" Src="~/UserControls/Menu/cu_menu_left.ascx" %>

<%@ Register TagPrefix="cu" TagName="topmenu" Src="~/UserControls/Menu/cu_menu_top.ascx" %>

फ़ाइल को register.inc नाम दें और इसे हमारे वेब प्रोजेक्ट के /inc फ़ोल्डर में रखें।

इस फ़ाइल में हमारे लिए आवश्यक सभी लिंक होंगे, हम इसमें उपयोगकर्ता या सर्वर नियंत्रण के पंजीकरण को जोड़ेंगे या बदलेंगे।

अब बनाई गई फ़ाइल को किसी तरह पेज कोड में शामिल करने की आवश्यकता है। हम इसे SSI (सर्वर साइड में शामिल हैं) #include निर्देश के साथ करते हैं। यह निर्देश आपको पेज कोड में स्थिर और गतिशील फ़ाइलों को शामिल करने की अनुमति देता है, उन्हें IIS मैपिंग के आधार पर संसाधित करता है, अर्थात। स्रोत के रूप में एएसपी या एएसपीएक्स फ़ाइल निर्दिष्ट करने से फ़ाइल को उचित प्रक्रिया द्वारा संसाधित किया जाएगा और इस प्रसंस्करण के परिणामों को आउटपुट पेज पर कॉपी किया जाएगा। ASP में, #include निर्देश का बहुत व्यापक रूप से उपयोग किया गया था और साइट के मॉडर्नाइजेशन के लिए अनुमति दी गई थी। ASP.NET के आगमन के साथ, इसे अन्य तरीकों से करना अधिक सुविधाजनक हो गया है, उदाहरण के लिए, उपयोगकर्ता नियंत्रणों का उपयोग करना। ASP.NET के भविष्य के संस्करण मास्टर पेजों का उपयोग करके प्रतिरूपकता को लागू करेंगे। सामान्य तौर पर, #include निर्देश ने अपना अर्थ खो दिया और मुख्य रूप से पिछड़े संगतता के लिए और ASP परियोजनाओं के .Net पर प्रवास को आसान बनाने के लिए रखा गया था।

चूंकि हमारे पास एक साधारण टेक्स्ट फ़ाइल है, कोई प्रसंस्करण नहीं किया जाएगा, और किसी भी गतिशील सामग्री को निष्पादित करने से पहले, फ़ाइल की पूरी सामग्री को पेज कोड में कॉपी किया जाएगा। वे। उदाहरण के लिए, हमारी register.inc फ़ाइल को पृष्ठ के शीर्ष पर जोड़ना लगभग सभी @Register निर्देशों को लिखने जैसा ही है।

फ़ाइल के भौतिक स्थान पर निर्भर न होने के लिए, हम फिर से वर्चुअल पथ सिंटैक्स का उपयोग करते हैं और निम्न पंक्ति को aspx फ़ाइल कोड में जोड़ते हैं:

सुनिश्चित करें कि सब कुछ काम करता है, यदि नहीं, तो गलत रास्तों को ठीक करें।

एक और ऑपरेशन करना बाकी है। अब, यदि आप अपने ब्राउज़र में लिंक से /inc/register.inc फ़ाइल प्राप्त करने का प्रयास करते हैं, तो आप इसे आसानी से कर सकते हैं। आईआईएस इसे आपके हाथों में देता है, साथ ही एक हमलावर के हाथों में, पूरी तरह से मुक्त, हालांकि इसमें आपकी साइट की भौतिक संरचना के पथ शामिल हैं।

ऐसा होने से रोकने के लिए, हम सिंक्रोनस HttpForbiddenHandler हैंडलर की क्षमताओं का उपयोग करते हैं, जो हमें उपयोगकर्ता के अनुरोध पर एक निश्चित प्रकार की फ़ाइलों को जारी होने से बचाने की अनुमति देता है। यह दृष्टिकोण सुविधाजनक है और अक्सर इसका उपयोग किया जाता है, उदाहरण के लिए, किसी प्रोजेक्ट में उपयोग की जाने वाली एमएस एक्सेस डेटाबेस फ़ाइलों की सुरक्षा के लिए। इस हैंडलर का उपयोग करके *.inc एक्सटेंशन वाली फ़ाइलों को सुरक्षित रखने के लिए, आपको IIS को यह बताना होगा कि इन फ़ाइलों को ASP.NET प्रक्रिया द्वारा संसाधित किया जाएगा, दूसरे शब्दों में, IIS को इस प्रकार की फ़ाइलों में मैप करने के लिए कॉन्फ़िगर करें।

IIS के लिए कॉन्फ़िगरेशन प्रक्रिया के विस्तृत विवरण के लिए, कैसे करें: फ़ाइल प्रकारों की सुरक्षा के लिए ASP.NET का उपयोग करें (http://support.microsoft.com/kb/815152/EN-US/) देखें। हमें केवल *.inc फाइलों के लिए मैपिंग बनाने की जरूरत है। वहाँ वर्णित चरणों को पूरा करने के बाद, इस एक्सटेंशन वाली फ़ाइलों के सभी अनुरोधों को ASP.NET प्रक्रिया द्वारा संसाधित किया जाएगा, और आपको web.config फ़ाइल को निम्नानुसार संपादित करना होगा:

बस इतना ही, अब सीधे लिंक के माध्यम से /inc/register.inc फ़ाइल प्राप्त करने का प्रयास करते समय, उपयोगकर्ता को त्रुटि B प्राप्त होगी।

उदाहरण के लिए, aspnet_isapi.dll को पंजीकृत न करने के लिए, आपका प्रदाता ऐसा नहीं करना चाहता है, आप किसी भी प्रकार की फ़ाइलों को निर्दिष्ट करने के लिए SSI क्षमता का उपयोग कर सकते हैं और डिफ़ॉल्ट रूप से IIS में पहले से मैप किए गए प्रकारों में से किसी एक के एक्सटेंशन का उपयोग करके धोखा दे सकते हैं। @Register निर्देशों वाली फ़ाइल के लिए। *.cs या *.vb एक्सटेंशन इसके लिए सुविधाजनक होंगे। इन फ़ाइलों में स्रोत कोड होता है और आमतौर पर सर्वर पर कॉपी नहीं किया जाता है। यदि आपने अचानक कोई गलती की और कॉपी की, तो आप ब्राउज़र से अनुरोध पर उन्हें प्राप्त नहीं कर पाएंगे - जब आप ऐसा करने का प्रयास करते हैं, तो उपयोगकर्ता को एक त्रुटि B प्राप्त होगी। ऐसा इसलिए होता है क्योंकि IIS में मैपिंग डिफ़ॉल्ट रूप से कॉन्फ़िगर की जाती है इस प्रकार की फाइलों के लिए और संबंधित एक्सटेंशन पहले से ही अनुभाग में पंजीकृत है मशीन.कॉन्फ़िगरेशन फ़ाइल। विजुअल स्टूडियो में, कंपाइलर के लिए आपको एक त्रुटि संदेश न देने के लिए, एक एक्सटेंशन डालें जिसमें कंपाइलर की दिलचस्पी नहीं है: C# प्रोजेक्ट्स में यह *.vb है, VB प्रोजेक्ट्स में यह *.cs है।
निष्कर्ष

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

Google खोज इंजन (www.google.com) कई खोज विकल्प प्रदान करता है। ये सभी विशेषताएं पहली बार इंटरनेट उपयोगकर्ता के लिए एक अमूल्य खोज उपकरण हैं और साथ ही न केवल हैकर, बल्कि गैर-कंप्यूटर अपराधियों सहित बुरे इरादों वाले लोगों के हाथों में आक्रमण और विनाश का एक और भी अधिक शक्तिशाली हथियार है। और यहां तक ​​कि आतंकवादी भी।
(1 सप्ताह में 9475 बार देखा गया)

डेनिस बट्रानकोव
denisNOSPAMixi.ru

ध्यान:यह लेख कार्रवाई के लिए एक गाइड नहीं है। यह लेख आपके लिए, वेब सर्वर प्रशासकों के लिए लिखा गया है, ताकि आप इस झूठी भावना को खो दें कि आप सुरक्षित हैं, और आप अंततः जानकारी प्राप्त करने और अपनी साइट की सुरक्षा के बारे में सेट करने की इस पद्धति की कपटपूर्णता को समझेंगे।

परिचय

उदाहरण के लिए, मुझे 0.14 सेकंड में 1670 पृष्ठ मिले!

2. आइए एक और पंक्ति दर्ज करें, उदाहरण के लिए:

inurl:"auth_user_file.txt"

थोड़ा कम, लेकिन यह पहले से ही मुफ्त डाउनलोड और पासवर्ड अनुमान लगाने के लिए पर्याप्त है (उसी जॉन द रिपर का उपयोग करके)। नीचे मैं कुछ और उदाहरण दूंगा।

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

3 साल पहले पहली बार बगट्रक मेलिंग लिस्ट में गूगल हैकिंग के बारे में जानकारी सामने आई थी। 2001 में, इस विषय को एक फ्रांसीसी छात्र ने उठाया था। इस पत्र का लिंक http://www.cotse.com/mailing-lists/bugtraq/2001/Nov/0129.html है। यह ऐसे अनुरोधों का पहला उदाहरण देता है:

1) /admin . का सूचकांक
2)/पासवर्ड का सूचकांक
3) / मेल . का सूचकांक
4) / + बैंक्स + फ़ाइल प्रकार का सूचकांक: xls (फ्रांस के लिए...)
5) / +passwd . का सूचकांक
6) /password.txt . का सूचकांक

इस विषय ने हाल ही में इंटरनेट के अंग्रेजी-पढ़ने वाले हिस्से में बहुत शोर मचाया: 7 मई, 2004 को प्रकाशित जॉनी लॉन्ग के एक लेख के बाद। Google हैकिंग के अधिक संपूर्ण अध्ययन के लिए, मैं आपको इस लेखक की साइट http://johnny.ihackstuff.com पर जाने की सलाह देता हूं। इस लेख में, मैं आपको केवल अप टू डेट लाना चाहता हूं।

इसका उपयोग कौन कर सकता है:
- पत्रकार, जासूस और वे सभी लोग जो दूसरे लोगों के धंधे में अपनी नाक बंद करना पसंद करते हैं, इसका इस्तेमाल समझौता करने वाले सबूत खोजने के लिए कर सकते हैं।
- हैकर्स हैकिंग के लिए उपयुक्त टारगेट की तलाश में रहते हैं।

गूगल कैसे काम करता है।

बातचीत जारी रखने के लिए, मैं आपको Google प्रश्नों में उपयोग किए गए कुछ कीवर्ड की याद दिलाता हूं।

+ चिह्न . का उपयोग करके खोजें

Google अपनी राय में महत्वहीन शब्दों को खोज से बाहर करता है। उदाहरण के लिए, अंग्रेजी में प्रश्नवाचक शब्द, पूर्वसर्ग और लेख: उदाहरण के लिए, के, कहाँ हैं। रूसी में, Google सभी शब्दों को महत्वपूर्ण मानता है। यदि शब्द को खोज से बाहर रखा जाता है, तो Google इसके बारे में लिखता है। Google के लिए इन शब्दों वाले पृष्ठों की खोज शुरू करने के लिए, आपको शब्द से पहले एक स्थान के बिना उनके सामने एक + चिह्न जोड़ना होगा। उदाहरण के लिए:

इक्का + आधार का

चिन्ह से खोजें -

यदि Google को बड़ी संख्या में ऐसे पृष्ठ मिलते हैं जिनसे कुछ विषयों वाले पृष्ठों को बाहर करना आवश्यक है, तो आप Google को केवल उन पृष्ठों की खोज करने के लिए बाध्य कर सकते हैं जिनमें कुछ शब्द नहीं हैं। ऐसा करने के लिए, आपको प्रत्येक के सामने एक चिन्ह लगाकर इन शब्दों को इंगित करना होगा - शब्द से पहले एक स्थान के बिना। उदाहरण के लिए:

मछली पकड़ना - वोदका

~ चिह्न के साथ खोजें

आप न केवल निर्दिष्ट शब्द, बल्कि उसके समानार्थक शब्द को भी देखना चाह सकते हैं। ऐसा करने के लिए, प्रतीक के साथ शब्द से पहले ~।

दोहरे उद्धरण चिह्नों का उपयोग करके सटीक वाक्यांश ढूँढना

Google प्रत्येक पृष्ठ पर आपके द्वारा क्वेरी स्ट्रिंग में लिखे गए शब्दों की सभी घटनाओं के लिए खोज करता है, और यह शब्दों की सापेक्ष स्थिति की परवाह नहीं करता है, मुख्य बात यह है कि सभी निर्दिष्ट शब्द एक ही समय में पृष्ठ पर हैं ( यह डिफ़ॉल्ट क्रिया है)। सटीक वाक्यांश खोजने के लिए, आपको इसे उद्धरण चिह्नों में रखना होगा। उदाहरण के लिए:

"बुकएंड"

निर्दिष्ट शब्दों में से कम से कम एक होने के लिए, आपको तार्किक संचालन स्पष्ट रूप से निर्दिष्ट करना होगा: या। उदाहरण के लिए:

पुस्तक सुरक्षा या सुरक्षा

इसके अलावा, आप किसी भी शब्द को दर्शाने के लिए खोज स्ट्रिंग में * चिह्न का उपयोग कर सकते हैं। किसी भी चरित्र का प्रतिनिधित्व करने के लिए।

अतिरिक्त ऑपरेटरों के साथ शब्द ढूँढना

ऐसे खोज ऑपरेटर हैं जो प्रारूप में खोज स्ट्रिंग में निर्दिष्ट हैं:

ऑपरेटर: search_term

बृहदान्त्र के बगल में रिक्त स्थान की आवश्यकता नहीं है। यदि आप कोलन के बाद स्पेस डालते हैं, तो आपको एक त्रुटि संदेश दिखाई देगा, और इससे पहले, Google उन्हें एक सामान्य खोज स्ट्रिंग के रूप में उपयोग करेगा।
अतिरिक्त खोज ऑपरेटरों के समूह हैं: भाषाएँ - इंगित करें कि आप किस भाषा में परिणाम देखना चाहते हैं, दिनांक - पिछले तीन, छह या 12 महीनों के परिणामों को सीमित करें, घटनाएँ - इंगित करें कि दस्तावेज़ में आपको कहाँ देखना है स्ट्रिंग: हर जगह, शीर्षक में, URL में, डोमेन - निर्दिष्ट साइट खोजें या इसके विपरीत इसे खोज से बाहर करें, सुरक्षित खोज - निर्दिष्ट प्रकार की जानकारी वाली साइटों को ब्लॉक करें और उन्हें खोज परिणाम पृष्ठों से हटा दें।
हालांकि, कुछ ऑपरेटरों को अतिरिक्त पैरामीटर की आवश्यकता नहीं है, उदाहरण के लिए, क्वेरी " कैशे:www.google.com"एक पूर्ण खोज स्ट्रिंग के रूप में कहा जा सकता है, और कुछ कीवर्ड, इसके विपरीत, एक खोज शब्द की आवश्यकता होती है, उदाहरण के लिए" साइट:www.google.com सहायता"। हमारे विषय के आलोक में, आइए निम्नलिखित ऑपरेटरों को देखें:

ऑपरेटर

विवरण

एक अतिरिक्त पैरामीटर की आवश्यकता है?

केवल search_term . में निर्दिष्ट साइट के लिए खोजें

केवल search_term . प्रकार वाले दस्तावेज़ों में खोजें

शीर्षक में search_term वाले पृष्ठ खोजें

शीर्षक में सभी शब्द search_term वाले पृष्ठ खोजें

उनके पते में search_term शब्द वाले पृष्ठ खोजें

उन पृष्ठों को खोजें जिनमें सभी शब्द search_term उनके पते में हों

ऑपरेटर साइट:केवल निर्दिष्ट साइट पर खोज को सीमित करता है, और आप न केवल डोमेन नाम, बल्कि आईपी पता भी निर्दिष्ट कर सकते हैं। उदाहरण के लिए, दर्ज करें:

ऑपरेटर फाइल का प्रकार:खोजों को एक निश्चित प्रकार की फ़ाइलों तक सीमित करता है। उदाहरण के लिए:

इस लेख की तिथि के अनुसार, Google 13 विभिन्न फ़ाइल स्वरूपों में खोज कर सकता है:

  • एडोब पोर्टेबल दस्तावेज़ प्रारूप (पीडीएफ)
  • एडोब पोस्टस्क्रिप्ट (पीएस)
  • लोटस 1-2-3 (wk1, wk2, wk3, wk4, wk5, wki, wks, wku)
  • लोटस वर्ड प्रो (एलडब्ल्यूपी)
  • मैकराइट (मेगावाट)
  • माइक्रोसॉफ्ट एक्सेल (एक्सएलएस)
  • माइक्रोसॉफ्ट पावरपॉइंट (पीपीटी)
  • माइक्रोसॉफ्ट वर्ड (डॉक्टर)
  • माइक्रोसॉफ्ट वर्क्स (डब्ल्यूकेएस, डब्ल्यूपीएस, डब्ल्यूडीबी)
  • माइक्रोसॉफ्ट राइट (डब्ल्यूआरआई)
  • रिच टेक्स्ट फॉर्मेट (आरटीएफ)
  • शॉकवेव फ्लैश (एसडब्ल्यूएफ)
  • पाठ (उत्तर, txt)

ऑपरेटर जोड़ना:निर्दिष्ट पृष्ठ को इंगित करने वाले सभी पृष्ठ दिखाता है।
यह देखना हमेशा दिलचस्प होगा कि इंटरनेट पर कितनी जगहें आपके बारे में जानती हैं। हम कोशिश करेंगे:

ऑपरेटर कैश:साइट का Google कैश्ड संस्करण दिखाता है जैसा कि Google द्वारा पिछली बार पृष्ठ पर जाने पर देखा गया था। हम किसी भी बार-बार बदलने वाली साइट को लेते हैं और देखते हैं:

ऑपरेटर शीर्षक:पृष्ठ शीर्षक में निर्दिष्ट शब्द की खोज करता है। ऑपरेटर सभी शीर्षक:एक एक्सटेंशन है - यह पृष्ठ शीर्षक में सभी निर्दिष्ट कुछ शब्दों की तलाश करता है। तुलना करना:

शीर्षक: मंगल के लिए उड़ान
इनटाइटल: फ्लाइट इनटाइटल: ऑन इनटाइटल: मार्स
allintitle:मंगल के लिए उड़ान

ऑपरेटर इनयूआरएल: Google को URL में निर्दिष्ट स्ट्रिंग वाले सभी पृष्ठ दिखाने का कारण बनता है। allinurl: URL में सभी शब्दों की खोज करता है। उदाहरण के लिए:

allinurl:acid_stat_alerts.php

यह आदेश उन लोगों के लिए विशेष रूप से उपयोगी है जिनके पास SNORT नहीं है - कम से कम वे देख सकते हैं कि यह वास्तविक सिस्टम पर कैसे काम करता है।

गूगल हैकिंग के तरीके

इसलिए, हमने पाया कि उपरोक्त ऑपरेटरों और कीवर्ड के संयोजन का उपयोग करके, कोई भी आवश्यक जानकारी एकत्र कर सकता है और कमजोरियों की खोज कर सकता है। इन तकनीकों को अक्सर Google हैकिंग के रूप में जाना जाता है।

साइट का नक्शा

Google को साइट पर मिले सभी लिंक देखने के लिए आप साइट: स्टेटमेंट का उपयोग कर सकते हैं। आमतौर पर, स्क्रिप्ट द्वारा गतिशील रूप से बनाए गए पृष्ठ पैरामीटर का उपयोग करके अनुक्रमित नहीं होते हैं, इसलिए कुछ साइटें आईएसएपीआई फ़िल्टर का उपयोग करती हैं ताकि लिंक फॉर्म में न हों / article.asp?num=10&dst=5, लेकिन स्लैश के साथ /लेख/एबीसी/संख्या/10/डीएसटी/5. यह सुनिश्चित करने के लिए किया जाता है कि साइट को आमतौर पर खोज इंजन द्वारा अनुक्रमित किया जाता है।

कोशिश करते हैं:

साइट: www.whitehouse.gov व्हाइटहाउस

Google सोचता है कि साइट के प्रत्येक पृष्ठ में व्हाइटहाउस शब्द है। इसका उपयोग हम सभी पेज प्राप्त करने के लिए करते हैं।
एक सरलीकृत संस्करण भी है:

साइट: whitehouse.gov

और सबसे अच्छी बात यह है कि whitehouse.gov के साथियों को यह भी नहीं पता था कि हमने उनकी साइट की संरचना को देखा और यहां तक ​​कि उन कैश्ड पृष्ठों को भी देखा जिन्हें Google ने अपने लिए डाउनलोड किया था। इसका उपयोग साइटों की संरचना का अध्ययन करने और कुछ समय के लिए ध्यान दिए बिना सामग्री देखने के लिए किया जा सकता है।

निर्देशिकाओं में फाइलों को सूचीबद्ध करना

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

intitle: index.of मूल निर्देशिका
intitle:index.of नाम का आकार

चूंकि अधिकांश निर्देशिका प्रविष्टियां जानबूझकर की जाती हैं, इसलिए आपको पहली बार गलत प्रविष्टियां ढूंढने में कठिनाई हो सकती है। लेकिन कम से कम आप वेब सर्वर संस्करण को निर्धारित करने के लिए लिस्टिंग का उपयोग करने में सक्षम होंगे, जैसा कि नीचे वर्णित है।

वेब सर्वर संस्करण प्राप्त करना।

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

Apache1.3.29 - trf296.free.fr पोर्ट 80 . पर ProXad सर्वर

एक अनुभवी व्यवस्थापक इस जानकारी को बदल सकता है, लेकिन, एक नियम के रूप में, यह सच है। इस प्रकार, यह जानकारी प्राप्त करने के लिए, अनुरोध भेजने के लिए पर्याप्त है:

intitle:index.of server.at

किसी विशिष्ट सर्वर के लिए जानकारी प्राप्त करने के लिए, हम अनुरोध को परिष्कृत करते हैं:

intitle:index.of server.at साइट:ibm.com

या इसके विपरीत, हम सर्वर के विशिष्ट संस्करण पर चलने वाले सर्वर की तलाश कर रहे हैं:

intitle:index.of Apache/2.0.40 सर्वर पर

इस तकनीक का उपयोग हैकर द्वारा शिकार को खोजने के लिए किया जा सकता है। यदि, उदाहरण के लिए, उसके पास वेब सर्वर के एक निश्चित संस्करण के लिए एक शोषण है, तो वह इसे ढूंढ सकता है और मौजूदा शोषण का प्रयास कर सकता है।

आप वेब सर्वर के नए संस्करण को स्थापित करते समय डिफ़ॉल्ट रूप से स्थापित पृष्ठों को देखकर भी सर्वर संस्करण प्राप्त कर सकते हैं। उदाहरण के लिए, Apache 1.2.6 परीक्षण पृष्ठ देखने के लिए, बस टाइप करें

intitle:Test.Page.for.Apache it.worked!

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

आईआईएस 5.0 पृष्ठों को खोजने का प्रयास करें

allintitle:Windows 2000 इंटरनेट सेवाओं में आपका स्वागत है

IIS के मामले में, आप न केवल सर्वर का संस्करण, बल्कि Windows और सर्विस पैक का संस्करण भी निर्धारित कर सकते हैं।

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

inurl:मैनुअल अपाचे निर्देश मॉड्यूल

Google का उपयोग CGI स्कैनर के रूप में करना।

CGI स्कैनर या WEB स्कैनर पीड़ित के सर्वर पर संवेदनशील स्क्रिप्ट और प्रोग्राम खोजने के लिए एक उपयोगिता है। इन उपयोगिताओं को यह जानने की जरूरत है कि क्या देखना है, इसके लिए उनके पास कमजोर फाइलों की पूरी सूची है, उदाहरण के लिए:

/cgi-bin/cgiemail/uargg.txt
/random_banner/index.cgi
/random_banner/index.cgi
/cgi-bin/mailview.cgi
/cgi-bin/maillist.cgi
/cgi-bin/userreg.cgi

/iissamples/ISSनमूने/SQLQHit.asp
/साइटसेवर/व्यवस्थापक/findvserver.asp
/स्क्रिप्ट/cphost.dll
/cgi-bin/finger.cgi

हम इन फ़ाइलों में से प्रत्येक को खोज बार में फ़ाइल नाम के अलावा अनुक्रमणिका या inurl शब्दों का उपयोग करके Google का उपयोग करके ढूंढ सकते हैं: हम कमजोर स्क्रिप्ट वाली साइटें ढूंढ सकते हैं, उदाहरण के लिए:

allinurl:/random_banner/index.cgi

अतिरिक्त ज्ञान के साथ, एक हैकर एक स्क्रिप्ट भेद्यता का फायदा उठा सकता है और स्क्रिप्ट को सर्वर पर संग्रहीत किसी भी फ़ाइल की सेवा के लिए मजबूर करने के लिए भेद्यता का उपयोग कर सकता है। उदाहरण के लिए एक पासवर्ड फ़ाइल।

Google के माध्यम से खुद को हैक होने से कैसे बचाएं।

1. महत्वपूर्ण डेटा को वेब सर्वर पर अपलोड न करें।

यहां तक ​​​​कि अगर आपने डेटा को अस्थायी रूप से पोस्ट किया है, तो आप इसके बारे में भूल सकते हैं या किसी के पास इसे मिटाने से पहले इस डेटा को खोजने और लेने का समय होगा। मत करो। डेटा को स्थानांतरित करने के कई अन्य तरीके हैं जो इसे चोरी से बचाते हैं।

2. अपनी साइट की जाँच करें।

अपनी साइट पर शोध करने के लिए वर्णित विधियों का उपयोग करें। http://johnny.ihackstuff.com साइट पर दिखाई देने वाली नई विधियों के लिए समय-समय पर अपनी साइट की जाँच करें। याद रखें कि यदि आप अपने कार्यों को स्वचालित करना चाहते हैं, तो आपको Google से विशेष अनुमति लेनी होगी। अगर आप ध्यान से पढ़ें http://www.google.com/terms_of_service.html, तो आप वाक्यांश देखेंगे: आप Google से अग्रिम अनुमति के बिना Google के सिस्टम को किसी भी प्रकार की स्वचालित क्वेरी नहीं भेज सकते हैं।

3. हो सकता है कि आपको अपनी साइट या उसके हिस्से को अनुक्रमित करने के लिए Google की आवश्यकता न हो।

Google आपको अपने डेटाबेस से अपनी साइट या उसके किसी भाग का लिंक निकालने की अनुमति देता है, साथ ही कैश से पृष्ठों को निकालने की अनुमति देता है। इसके अलावा, आप अपनी साइट पर छवियों की खोज को प्रतिबंधित कर सकते हैं, खोज परिणामों में पृष्ठों के छोटे टुकड़ों के प्रदर्शन को प्रतिबंधित कर सकते हैं। साइट को हटाने के सभी विकल्पों का वर्णन पृष्ठ पर किया गया है। http://www.google.com/remove.html. ऐसा करने के लिए, आपको यह पुष्टि करनी होगी कि आप वास्तव में इस साइट के स्वामी हैं या पृष्ठ पर टैग डालें या

4. robots.txt का प्रयोग करें

यह ज्ञात है कि खोज इंजन साइट के मूल में robots.txt फ़ाइल को देखते हैं और उन भागों को अनुक्रमित नहीं करते हैं जो शब्द के साथ चिह्नित हैं अनुमति न दें. आप इसका उपयोग साइट के किसी भाग को अनुक्रमित होने से रोकने के लिए कर सकते हैं। उदाहरण के लिए, पूरी साइट को अनुक्रमित करने से बचने के लिए, दो पंक्तियों वाली robots.txt फ़ाइल बनाएं:

उपभोक्ता अभिकर्ता: *
अनुमति न दें: /

और क्या होता है

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

अनुबंध।

थोड़ा मीठा। अपने लिए निम्न में से कोई एक प्रयास करें:

1. #mysql डंप फ़ाइल प्रकार: sql - mySQL डेटाबेस डंप खोजें
2. मेजबान भेद्यता सारांश रिपोर्ट - आपको दिखाएगा कि अन्य लोगों ने क्या कमजोरियां पाई हैं
3. phpMyAdmin inurl पर चल रहा है: main.php - यह phpmyadmin पैनल के माध्यम से नियंत्रण को बंद कर देगा
4. गोपनीय वितरण के लिए नहीं
5. अनुरोध विवरण नियंत्रण ट्री सर्वर चर
6. चाइल्ड मोड में चल रहा है
7. यह रिपोर्ट वेबलॉग द्वारा तैयार की गई थी
8. इनटाइटल: index.of cgiirc.config
9. filetype:conf inurl:firewall -intitle:cvs - शायद किसी को फ़ायरवॉल कॉन्फ़िगरेशन फ़ाइलों की आवश्यकता है? :)
10. इनटाइटल: इंडेक्स.ऑफ़ फ़ाइनेंस.एक्सएलएस - हम्म....
11. इनटाइटल: dbconvert.exe चैट का इंडेक्स - icq चैट लॉग्स
12. पाठ: टोबियास ओटिकर यातायात विश्लेषण
13. इनटाइटल: वेबलाइज़र द्वारा जेनरेट किए गए उपयोग के आंकड़े
14. इनटाइटल:उन्नत वेब आँकड़ों के आँकड़े
15. intitle:index.of ws_ftp.ini - ws ftp config
16. inurl:ipsec.secrets साझा रहस्य रखता है - गुप्त कुंजी - अच्छा खोज
17. inurl:main.php phpMyAdmin में आपका स्वागत है
18. inurl:सर्वर-जानकारी अपाचे सर्वर जानकारी
19. साइट: edu व्यवस्थापक ग्रेड
20. ORA-00921: SQL कमांड का अप्रत्याशित अंत - पथ प्राप्त करें
21. इनटाइटल: index.of Trillian.ini
22. शीर्षक: pwd.db . का सूचकांक
23. इनटाइटल: इंडेक्स.ऑफ़ पीपल.एलएसटी
24. इनटाइटल: इंडेक्स.ऑफ़ मास्टर.पासवार्ड
25.inurl:passlist.txt
26. इनटाइटल: इंडेक्स ऑफ .mysql_history
27. इनटाइटल: इंडेक्स ऑफ इंटेक्स: ग्लोबल्स.inc
28. इनटाइटल:index.of admins.pwd
29. इनटाइटल: इंडेक्स.ऑफ़ आदि छाया
30. इनटाइटल: इंडेक्स.ऑफ़ secring.pgp
31. inurl:config.php dbuname dbpass
32. inurl: फ़ाइल प्रकार निष्पादित करें: ini

  • "हैकिंग मिट गूगल"
  • प्रशिक्षण केंद्र "Informzaschita" http://www.itsecurity.ru - सूचना सुरक्षा प्रशिक्षण के क्षेत्र में एक प्रमुख विशिष्ट केंद्र (मास्को शिक्षा समिति का लाइसेंस संख्या 015470, राज्य मान्यता संख्या 004251)। रूस और सीआईएस देशों में इंटरनेट सुरक्षा प्रणालियों और क्लियरस्विफ्ट का एकमात्र अधिकृत प्रशिक्षण केंद्र। Microsoft अधिकृत प्रशिक्षण केंद्र (सुरक्षा विशेषज्ञता)। प्रशिक्षण कार्यक्रम रूस के राज्य तकनीकी आयोग, FSB (FAPSI) के साथ समन्वित हैं। उन्नत प्रशिक्षण पर प्रशिक्षण और राज्य दस्तावेजों के प्रमाण पत्र।

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

    प्रत्येक ASP.NET डेवलपर को पृष्ठ निर्देशों से परिचित होना चाहिए। यदि आप एक नौसिखिया हैं और आप पेज निर्देशों के बारे में सीखना चाहते हैं तो आप इस लेख को पढ़ सकते हैं।

    तो पहला सवाल पेज डायरेक्टिव के बारे में है।

    पेज निर्देश क्या है?

    मूल रूप से पृष्ठ निर्देश आदेश हैं। इन आदेशों का उपयोग संकलक द्वारा पृष्ठ संकलित करते समय किया जाता है।

    ASP.NET पृष्ठ में निर्देशों का उपयोग कैसे करें

    ASP.NET पृष्ठ पर निर्देश जोड़ना कठिन नहीं है। ASP.NET पृष्ठ पर निर्देश जोड़ना आसान है। आप निम्न प्रारूप में निर्देश लिख सकते हैं:

    <%@%>

    निर्देश प्रारूप देखें, यह "से शुरू होता है"<%@" and ends with "%>". सबसे अच्छा तरीका है कि आप निर्देश को अपने पृष्ठ के शीर्ष पर रखें। लेकिन आप किसी पृष्ठ में कहीं भी निर्देश डाल सकते हैं। एक और बात, आप एक ही निर्देश में एक से अधिक विशेषताएँ डाल सकते हैं।

    यहां निर्देशों की पूरी सूची है:

    • @पृष्ठ
    • @गुरुजी
    • @नियंत्रण
    • @आयात
    • @कार्यान्वयन
    • @पंजीकरण करवाना
    • @सभा
    • @ मास्टर टाइप
    • @आउटपुट कैश
    • @पिछलापेज टाइप
    • @संदर्भ

    आइए प्रत्येक निर्देश के बारे में कुछ चर्चा करें।

    जब आप ASP.NET पृष्ठ के लिए विशेषताएँ निर्दिष्ट करना चाहते हैं तो आपको @Page निर्देश का उपयोग करने की आवश्यकता है। जैसा कि आप जानते हैं, ASP.NET पृष्ठ ASP.NET का एक बहुत ही महत्वपूर्ण हिस्सा है, इसलिए यह निर्देश आमतौर पर ASP.NET में उपयोग किया जाता है।

    <%@Page Language="C#" AutoEventWIreup="false" CodeFile="Default.aspx.cs" Inherits="_Default"%>

    अब आपके पास @Page Directive के बारे में कुछ जानकारी है। @Master निर्देश @Page निर्देश के समान है। फर्क सिर्फ इतना है कि @मास्टर निर्देश मास्टर पेजों के लिए है। आपको यह नोट करने की आवश्यकता है कि, @Master निर्देश का उपयोग करते समय आप टेम्प्लेट पृष्ठ की संपत्ति को परिभाषित करते हैं। फिर कोई भी सामग्री पृष्ठ मास्टर पृष्ठ में परिभाषित सभी गुणों को प्राप्त कर सकता है। लेकिन कुछ गुण ऐसे हैं जो केवल एक मास्टर पृष्ठ में उपलब्ध हैं।

    <%@Master Language="C#" AutoEventWIreup="false" CodeFile="MasterPage1.master.cs" Inherits="MasterPage"%>

    @नियंत्रण

    @Control ASP.NET उपयोगकर्ता नियंत्रण बनाता है। जब आप निर्देश का उपयोग करते हैं तो आप उपयोगकर्ता नियंत्रणों द्वारा विरासत में मिली संपत्तियों को परिभाषित करते हैं और शोध मान उपयोगकर्ता नियंत्रण को सौंपे जाते हैं

    <%@Control Language="C#" Explicit="True" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>

    जैसा कि आप जानते हैं कि C# या VB वर्ग का उपयोग करने से पहले आपको अपने .cs वर्ग में नेमस्पेस को परिभाषित करने की आवश्यकता है। तो @Import निर्देश नामस्थान आयात करता है। यह निर्देश केवल एक विशेषता "नेमस्पेस" का समर्थन करता है और यह विशेषता एक स्ट्रिंग मान लेती है जो नामस्थान को आयात करने के लिए निर्दिष्ट करती है। एक बात जो आपको ध्यान देने की आवश्यकता है वह यह है कि @Import निर्देश में एक से अधिक विशेषता/मान युग्म नहीं हो सकते हैं। लेकिन आप कई लाइनों का उपयोग कर सकते हैं।

    <%@Import Namespace="System.Data"%>

    @कार्यान्वयन

    @Implements निर्देश .Net फ्रेमवर्क इंटरफेस को लागू करने के लिए ASP.NET पृष्ठ प्राप्त करता है। यह निर्देश केवल एकल विशेषता इंटरफ़ेस का समर्थन करता है।

    <%@Implements Interface="System.Web.UI.IValidator"%>

    @पंजीकरण करवाना

    जब आप उपयोगकर्ता नियंत्रण बनाते हैं और आप उस उपयोगकर्ता नियंत्रण को अपने पृष्ठ पर खींचते हैं तो आपको @Register निर्देश दिखाई देगा। यह निर्देश पृष्ठ पर आपके उपयोगकर्ता नियंत्रण को पंजीकृत करता है ताकि पृष्ठ द्वारा नियंत्रण तक पहुंचा जा सके।

    <%@ Register TagPrefix="MayTag Namespace="MyName.MyNameSpace" Assembly="MyAssembly"%>

    @सभा

    @Assembly निर्देश पेज या ASP.NET उपयोगकर्ता नियंत्रण से असेंबली को जोड़ता है जिससे सभी असेंबली क्लास और इंटरफेस क्लास के लिए उपलब्ध होते हैं। यह निर्देश दो विशेषताओं नाम और स्रोत का समर्थन करता है। नाम विशेषता असेंबली नाम को परिभाषित करती है और src विशेषता असेंबली के स्रोत को परिभाषित करती है।

    <%@Assembly Name="MyAssembly"%>
    <%@Assembly src="MYAssembly.cs">

    @ मास्टर टाइप

    @MasterType निर्देश दृढ़ता से टाइप किए गए संदर्भ या निर्दिष्ट मास्टर पेज में शामिल सदस्यों को प्राप्त करने के लिए ASP.NET पृष्ठ से एक वर्ग नाम जोड़ता है। यह निर्देश दो विशेषताओं टाइपनाम और वर्चुअलपथ का समर्थन करता है। टाइपनाम व्युत्पन्न वर्ग का नाम सेट करता है जिससे दृढ़ता से टाइप या संदर्भ सदस्यों को प्राप्त किया जा सके और वर्चुअलपाथ उस पृष्ठ का स्थान सेट करता है जहां से इन्हें पुनर्प्राप्त किया जाता है।

    <%@MasterType VirtualPath="/MasterPage1.master"%>

    @आउटपुट कैश

    यह ASP.NET पृष्ठ की आउटपुट कैशिंग नीतियों को नियंत्रित करता है।

    <%@ OutputCache Duration ="180" VaryByParam="None"%>
    @पिछलापृष्ठप्रकार

    यह निर्देश उस पृष्ठ को निर्दिष्ट करता है जिससे कोई भी क्रॉस-पेज पोस्टिंग उत्पन्न होती है।

    @संदर्भ

    यह निर्देश घोषित करता है कि सक्रिय पृष्ठ या नियंत्रण के साथ एक अन्य पृष्ठ या उपयोगकर्ता नियंत्रण चिल्लाहट का अनुपालन किया जाना चाहिए। यह निर्देश एकल विशेषता वर्चुअलपथ का समर्थन करता है। यह उस पृष्ठ या उपयोगकर्ता नियंत्रण का स्थान निर्धारित करता है जिससे सक्रिय पृष्ठ को संदर्भित किया जाएगा।

    <%@Reference VirtualPayh="~/MyControl.ascx"%>

    अंतिम शब्द

    मुझे आशा है कि आपको यहाँ से कुछ ज्ञान प्राप्त होगा। आपको यह लेख कैसा लगा कमेंट करके जरूर बताएं। आपकी टिप्पणियाँ मेरे लिए बहुत मूल्यवान हैं, क्योंकि केवल आप ही मुझे बताएंगे कि मैं कहाँ गलत हो रहा हूँ और एक बेहतर लेख लिखने के लिए मुझे क्या सुधार करने की आवश्यकता है। कृपया कमेंट करें और अपनी प्रतिक्रिया दें।

    गेस्टबुक क्या है?

    बेशक, यहां हम सबसे विशिष्ट अतिथि पुस्तक के बारे में बात कर रहे हैं। सबसे पहले, यह एक ऐसी प्रणाली है जो उपयोगकर्ता को पाठ दर्ज करने, किसी विशेष साइट के मूल्यांकन का चयन करने और अपने स्वयं के डेटा (नाम, ई-मेल, http, आदि) को निर्दिष्ट करने की क्षमता प्रदान करती है। यह विभिन्न उपयोगकर्ताओं द्वारा दर्ज किए गए डेटा को नेविगेट करने, संदेशों के लेखकों को ईमेल भेजने की क्षमता के साथ प्रस्तुत करने की एक प्रणाली भी है। विभिन्न सेटिंग्स और मानक शब्दावली के नियंत्रण के साथ भिन्नताएं भी संभव हैं।

    हमें क्या जरूरत है

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

    डेटाबेस बनाना और तैयार करना

    उपयोगकर्ताओं द्वारा दर्ज किए गए डेटा के भंडारण को व्यवस्थित करने के लिए, आपको एक तालिका की आवश्यकता होती है, जहां आप उपयोगकर्ता का नाम, उसका ईमेल पता, निवास का देश, साइट का पता, आईपी पता, साइट उपयोगकर्ता रेटिंग मान को पांच-बिंदु पैमाने पर संग्रहीत करने के लिए फ़ील्ड बना सकते हैं, आदि।:

    सिस्टम को मौजूदा साइटों में आसानी से एकीकृत करने के लिए, रंग और अन्य सेटिंग्स को संग्रहीत करने के लिए एक और तालिका की योजना बनाने की सिफारिश की जाती है। यह आपको गेस्टबुक एप्लिकेशन मॉड्यूल के स्रोत टेक्स्ट में संबंधित मापदंडों को बदले बिना भविष्य में निर्दिष्ट सेटिंग्स को बदलने की अनुमति देगा।

    • डेटा स्रोत ODBC विन्यासकर्ता चलाएँ - प्रारंभ-> सेटिंग्स-> नियंत्रण कक्ष-> प्रशासनिक उपकरण-> डेटा स्रोत ODBC।
    • सिस्टम डीएसएन टैब पर जाएं और Add… पर क्लिक करके एक नया डेटा स्रोत बनाएं।
    • दिखाई देने वाले ड्राइवरों की सूची में, डेटाबेस ड्राइवर - Microsoft SQL सर्वर का चयन करें और अगला क्लिक करें।
    • डेटा स्रोत नाम पंक्ति में, अपने डेटाबेस का नाम निर्दिष्ट करें (वर्णित उदाहरण में, गस्टबुक वह नाम है जिसके द्वारा आप भविष्य में इसका उल्लेख करेंगे)।
    • सर्वर लाइन में, उस सर्वर को निर्दिष्ट करें जिससे कनेक्शन बनाया जाएगा, और अगला क्लिक करें।
    • प्रमाणीकरण मोड का चयन करें SQL सर्वर के साथ…, SQL सर्वर से कनेक्ट करने के लिए उपयोगकर्ता नाम और पासवर्ड सेट करें; सर्वर के साथ संचार के लिए प्रोटोकॉल को परिभाषित करें (बटन क्लाइंट कॉन्फ़िगरेशन - टीसीपी/आईपी) और दो बार अगला क्लिक करें, फिर समाप्त पर क्लिक करें।
    • आपको की गई कार्रवाइयों के बारे में आंकड़े दिखाई देंगे, और आप डेटा स्रोत की जांच करने के लिए परीक्षण डेटा स्रोत बटन का उपयोग कर सकते हैं।
    • परिणामस्वरूप, आप अपने सिस्टम में डेटा स्रोतों की सूची में एक लाइन देखेंगे।

    अब जब डेटाबेस तैयार हो गया है, तो आप सीधे अतिथि पुस्तक बनाने के लिए आगे बढ़ सकते हैं।

    एक तैयार वेबसाइट में सिस्टम का एकीकरण

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

    विशेष रूप से, किसी विशेष साइट की विशिष्ट विशेषताओं के लिए सिस्टम को अनुकूलित करना आसान बनाने के लिए, आपकी साइट के लिए विशिष्ट कुछ मान दर्ज करने के लिए इन सभी प्राथमिकताओं को संग्रहीत करने के लिए एक विशेष तालिका बनाने की अनुशंसा की जाती है (जैसा कि ऊपर बताया गया है) इसे में। इस दृष्टिकोण का स्पष्ट लाभ यह है कि सिस्टम को पहले से तैयार साइट में एम्बेड करने के लिए, आपको मॉड्यूल के स्रोत कोड में परिवर्तन करने की आवश्यकता नहीं है, आपको केवल संबंधित डेटाबेस तालिका में सेटिंग्स को बदलने की आवश्यकता है।

    ऐसी तालिका के कार्यान्वयन के उदाहरण की कल्पना करें: .

    जैसा कि आप देख सकते हैं, सिस्टम सेटअप मोड तक पहुँचने के लिए नाम और पासवर्ड के बारे में जानकारी संग्रहीत करने के लिए फ़ील्ड हैं, उपयोगकर्ता के संदेश की मुख्य पृष्ठभूमि के रंगों के बारे में, ऊपर और नीचे फ़्रेम (Mid_Color, Top_Color, Bot_Color फ़ील्ड, क्रमशः) , उपयोगकर्ता डेटा (क्रमशः Form_Color और FormTitleSize फ़ील्ड) दर्ज करने के लिए उपयोग किए जाने वाले फ़ॉर्म के हेडर के रंग और आकार के बारे में, संदेश के टेक्स्ट के फ़ॉन्ट के रंग, आकार और शैली के बारे में, सूचना फ़ील्ड, साथ ही साथ गेस्टबुक स्वयं पृष्ठ (फ़ील्ड MessageFontColor, MessageFontSize, MessageFontFace, InfoFontColor, InfoFontSize, InfoFontFace, PageFontColor, PageFontSize और PageFontFace क्रमशः), नए संदेशों की सूचनाओं को स्वचालित रूप से सक्षम करने के लिए फ़ील्ड स्विच करें। प्रबंधक या साइट व्यवस्थापक), जिम्मेदार व्यक्ति के ई-मेल पते को संग्रहीत करने के लिए फ़ील्ड, उपयोगकर्ता द्वारा छोड़े गए संदेश के लिए धन्यवाद के साथ संदेश का पाठ, सूची के साथ अनुमति नहीं है x शब्द और उनके फ़िल्टरिंग मोड के लिए एक स्विच (यदि बाद वाला सक्षम है, तो अमान्य शब्दों की सूची में शब्द स्वचालित रूप से संदेश टेक्स्ट में तारांकन के साथ बदल दिए जाएंगे और इस प्रकार साइट टेक्स्ट की शब्दावली की प्रामाणिकता पर नियंत्रण होगा व्यायाम किया)।

    अतिथि पुस्तक एकीकरण प्रणाली के विकास का तात्पर्य उन सभी मापदंडों को निर्धारित करने के लिए एक वेब इंटरफ़ेस के संगठन से है, जिन पर हमने विचार किया है (प्रशासन तालिका के क्षेत्र)।

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

    चांदी की थाली में एएसपी (भाग - 15) - अतिथि पुस्तक

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

    गेस्टबुक मुख्य पृष्ठ (Guest.asp फ़ाइल)

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

    सबसे पहले, स्ट्रिंग्स के साथ काम करने के लिए कुछ फ़ंक्शन लिखें:

    1. एक खाली स्ट्रिंग को एक स्पेस और सिंगल कोट को डबल के साथ बदलने का कार्य:<% Function ChkString(string) If string = "" then string = " " ChkString = Replace(string, """, """") End Function %>
    2. मानकता के लिए संदेश पाठ की शब्दावली की जाँच करने का कार्य। यदि शब्द अमान्य शब्दों की सूची के शब्दों से मेल खाते हैं, तो उन्हें तारक से बदलें:<% Function ChkBadWords(String2) strBadWords = objRec2("BadWords") bwords = split(strBadWords, "|") For i = 0 to ubound(bwords) String2 = Replace(String2, bwords(i), string(len(bwords(i)),"*"), 1,-1,1) Next ChkBadWords = String2 end function %>
    3. उपयोगकर्ता द्वारा दर्ज किए गए पाठ को स्वरूपित करने का कार्य। यदि आवश्यक हो (यदि डेटाबेस में संबंधित ध्वज है), तो मानक के लिए पाठ की जाँच (फ़िल्टर) की जाएगी:<% Function FormatStr(String) on Error resume next String = Server.HTMLEncode(String) String2 = Replace(String, CHR(13), "") String2 = Replace(String, CHR(10) & CHR(10), "

      ") स्ट्रिंग 2 = बदलें (स्ट्रिंग, सीएचआर (10),"
      ") अगर objRec2("BadOn") = True तो String2 = ChkBadWords(String2) End if FormatStr = String2 End Function %>

    4. फ़ील्ड चेक फ़ंक्शन:<% Function ValidateField(sFieldValue, sFieldType) Valid = True Select Case LCase(sFieldType) Case "name" If Len(sFieldValue) = 0 Then Valid = False Case "message" If Len(sFieldValue) = 0 Then Valid = False End Select ValidateField = Valid End Function %>
    5. नए संदेश जोड़ने की प्रक्रिया (ध्यान दें कि जिस कंप्यूटर से संदेश भेजा गया था उसका आईपी पता कैसे गणना किया जाता है):
    <% Sub Update strSql = "insert into Messages (Name, Country, Email, URL,IP,Message,Rating) values ("" strSql = StrSql & ChkString(Request.Form("name")) & "", "" strSql = StrSql & ChkString(Request.Form("Country")) & "", "" strSql = StrSql & ChkString(Request.Form("email")) & "", "" strSql = StrSql & ChkString(Request.Form("URL")) & "", "" strSql = StrSql & Request.ServerVariables("REMOTE_ADDR") & "", "" strSql = StrSql & ChkString(Request.Form("Message")) & "", "" strSql = StrSql & ChkString(Request.Form("Rating")) & "")" objConn.Execute (StrSql) %>

    उसके बाद, रंग, आकार, डिज़ाइन फोंट के पैरामीटर निकाले जाते हैं और संबंधित तालिका से लागू होते हैं:

    "रंग ="<%=objRec2("PageFontColor")%>"आकार ="<%=objRec2("FormTitleSize")%>">हमारी अतिथि पुस्तिका में प्रवेश के लिए धन्यवाद!

    "रंग ="<%=objRec2("PageFontColor")%>"आकार ="<%=objRec2("PageFontSize")%>"> अपनी प्रविष्टि देखने के लिए यहां क्लिक करें

    अब, यदि आवश्यक हो, तो आपको एक नई अतिथि पुस्तिका प्रविष्टि के बारे में सूचित करते हुए प्रबंधक या व्यवस्थापक को एक ईमेल भेजें:

    <% If Not(Request.Form("email"))="" AND objRec2("AutoEmail")=True then Name = Request.Form("name") Email = Request.Form("email") sFrom = objRec2("YourEmail") sTo=Email sSubject = "Спасибо, Ваша запись в нашей гостевой книге принята!" sMessage = "Дорогой(ая) " & Name & vbcrlf _ & vbcrlf _ & objRec2("ThankMessage") & vbcrlf _ & vbcrlf _ & vbcrlf Set objNewMail = CreateObject("CDONTS.NewMail") objNewMail.Send sFrom, sTo, sSubject, sMessage Set objNewMail = Nothing End If If objRec2("YouEmail")=True then Name = Request.Form("name") Home_Page = Request.Form("url") Email = Request.Form("email") Message = Request.Form("message") Country = Request.Form("Country") Address = Request.ServerVariables("REMOTE_ADDR") Rating = Request.Form("Rating") If Rating ="0" then Rating="No Rating" End If sFrom = objRec2("YourEmail") sTo= objRec2("YourEmail") sSubject = "Новое сообщение" sMessage = "Привет," & vbcrlf _ & "Новое сообщение поступило в гостевую книгу" & vbcrlf _ & vbcrlf _ & ":" & vbcrlf _ & vbcrlf _ & Message & vbcrlf _ & vbcrlf _ & "Детали сообщения:" & vbcrlf _ & "Ваше имя: " & Name & vbcrlf _ & "Email: " & Email & vbcrlf _ & "URL: " & Home_Page & vbcrlf _ & "Страна: " & Country & vbcrlf _ & "Рейтинг: " & Rating & vbcrlf _ & "Адрес: " & Address Set objNewMail = CreateObject("CDONTS.NewMail") objNewMail.Send sFrom, sTo, sSubject, sMessage Set objNewMail = Nothing End If End Sub %>

    नए मान दर्ज करने के लिए प्रपत्र

    नए संदेशों को जोड़ने के लिए उपयोग किए जाने वाले फॉर्म के प्रदर्शन की प्रक्रिया में शामिल होना भी उचित है (ध्यान दें कि फॉर्म अपने आप बंद है, अर्थात, इसमें शामिल मॉड्यूल इसकी प्रतिक्रिया के रूप में कार्य करता है):

    <% Sub ShowForm(Sign) %>

    >
    "रंग ="<%=objRec2("PageFontColor")%>"आकार ="<%=objRec2("FormTitleSize")%>"> हमारी अतिथि पुस्तिका में एक प्रविष्टि छोड़ें

    ">* उन क्षेत्रों को इंगित करता है जिन्हें याद किया जाना चाहिए

    कोलस्पैन=2> "रंग ="<%=objRec2("PageFontColor")%>"आकार ="<%=objRec2("PageFontSize")%>"> तुम्हारा नाम: *
    "आकार=30> <% If dictFields(LCase("name")) Then Response.Write "आपको एक नाम दर्ज करना होगा
    "अन्य प्रतिक्रिया। लिखें"
    "अंत अगर %>
    कोलस्पैन=2> "रंग ="<%=objRec2("PageFontColor")%>"आकार ="<%=objRec2("PageFontSize")%>"> ईमेल:
    "आकार=30>
    कोलस्पैन=2> "रंग ="<%=objRec2("PageFontColor")%>"आकार ="<%=objRec2("PageFontSize")%>"> यूआरएल:
    "रंग ="<%=objRec2("PageFontColor")%>"आकार ="<%=objRec2("PageFontSize")%>"> http:// "आकार=30>
    कोलस्पैन=2> "रंग ="<%=objRec2("PageFontColor")%>"आकार ="<%=objRec2("PageFontSize")%>"> देश:
    "आकार=30>
    "रंग ="<%=objRec2("PageFontColor")%>"आकार ="<%=objRec2("PageFontSize")%>"> आप हमारी वेबसाइट को कैसे रेट करते हैं?
    "रंग ="<%=objRec2("PageFontColor")%>"आकार ="<%=objRec2("PageFontSize")%> ">आपकी टिप्पणी: *
    "रंग = "लाल" आकार = "-2"><% If dictFields(LCase("message")) Then Response.Write "Вы не ввели сообщение
    "अन्यथा प्रतिक्रिया.लिखें"
    "अंत अगर %>
    <% End Sub %>

    इसके बाद एक निश्चित संख्या में उपयोगकर्ता संदेशों को प्रदर्शित करने के लिए मुख्य कार्य किया जाता है (प्रशासनिक सेटिंग्स तालिका से प्राप्त मूल्य):

    <% Sub Show NumPerPage=INT(objRec2("NumPerPage")) If Request.QueryString("page") = "" Then iPageCurrent = 1 Else iPageCurrent = CInt(Request.QueryString("page")) End If Set objRec = Server.CreateObject ("ADODB.Recordset") StrSql = "SELECT * FROM Messages ORDER BY ID DESC;" objRec.PageSize = NumPerPage objRec.CacheSize = NumPerPage objRec.Open StrSql,objConn,3,1,&H0001 iPages = objRec.PageCount TotalRows = objRec.RecordCount If iPageCurrent >iPages तब iPageCurrent = iPages यदि iPageCurrent< 1 Then iPageCurrent = 1 If iPages = 0 Then Response.Write "Не найденно записей!" Else ObjRec.AbsolutePage = iPageCurrent %>

    "रंग ="<%=objRec2("PageFontColor")%>"आकार ="<%=objRec2("PageFontSize")%>"> पुस्तक में कुल <%=TotalRows%>प्रविष्टियां <%=iPages%>पृष्ठ

    <% iRecordsShown = 0 Do While iRecordsShown < NumPerPage And Not objRec.EOF Rating = ObjRec("Rating") If IsNull(Rating) or Rating="0" then Rating = "nr" Else Rating = ObjRec("Rating") End If If IsNull(ObjRec("URL")) then Link = "Не указан URL" Else Link = "http://" & ObjRec("URL") & "" End If Email = FormatStr(ObjRec("Email")) Name = FormatStr(ObjRec("Name")) %>
    "> "रंग ="<%=objRec2("InfoFontColor")%>"आकार ="<%=objRec2("InfoFontSize")%>"><%=ObjRec("DateID") %> "> "रंग ="<%=objRec2("InfoFontColor")%>"आकार ="<%=objRec2("InfoFontSize")%>">साइट रेटिंग: .gif" ऊंचाई = "14" चौड़ाई = "65">
    "> "रंग ="<%=objRec2("MessageFontColor")%>"आकार ="<%=objRec2("MessageFontSize")%>"><%=FormatStr(ObjRec("Message"))%>
    "> "रंग ="<%=objRec2("InfoFontColor")%>"आकार ="<%=objRec2("InfoFontSize")%>"> <% If IsEmpty(Email) or Email=" " then Response.Write Name Else Response.Write ""और नाम समाप्त होने पर %> "> "रंग ="<%=objRec2("InfoFontColor")%>"आकार ="<%=objRec2("InfoFontSize")%>"><%=FormatStr(ObjRec("Country")) %> आईपी:<%= ObjRec("IP") %> "> "रंग ="<%=objRec2("InfoFontColor")%>"आकार ="<%=objRec2("InfoFontSize")%>"> <%=Link%>

    <% iRecordsShown = iRecordsShown + 1 objRec.MoveNext Loop if iPages >1 फिर %>

    "रंग ="<%=objRec2("PageFontColor")%>"आकार ="<%=objRec2("PageFontSize")%>"> पन्ने: <% For I = 1 To iPages If I = iPageCurrent Then Response.Write ""&मैं&""अन्य प्रतिक्रिया। लिखें" "&मैं&""अगर अगली प्रतिक्रिया समाप्त करें। लिखें""अन्य प्रतिक्रिया। लिखें" "अंत यदि समाप्त हो तो objRec.Close सेट objRec = कुछ भी अंत उप%>

    संदेशों के ऐसे "भाग" के साथ अगले पृष्ठ को देखने का लिंक कैसे बनता है और कार्यान्वित किया जाता है, इस पर ध्यान दें:

    प्रतिक्रिया।लिखें" "&मैं&" "

    जैसा कि आप देख सकते हैं, पेज नंबर को पेज पैरामीटर के मान के रूप में पास किया जाता है, और बाद में, यदि यह मान 1 के बराबर नहीं है, तो संदेशों का प्रदर्शन पहले संदेश से शुरू नहीं होता है, लेकिन उस से जो होगा पैरामीटर में निर्दिष्ट संबंधित संख्या के साथ पृष्ठ पर खाते में प्रथम बनें:

    <% NumPerPage=INT(objRec2("NumPerPage")) If Request.QueryString("page") = "" Then iPageCurrent = 1 Else iPageCurrent = CInt(Request.QueryString("page")) End If %>मॉड्यूल का स्रोत पाठ स्वयं इस प्रकार है, जिसमें डेटाबेस से कनेक्शन बनाया जाता है और रिकॉर्ड्स को पुनः प्राप्त किया जाता है (वर्णित उदाहरण में, यह एकमात्र रिकॉर्ड होगा) व्यवस्थापक प्रशासनिक सेटिंग्स तालिका से:<% Set objConn = Server.CreateObject ("ADODB.Connection") objConn.Open StrConn Set objRec2 = Server.CreateObject ("ADODB.Recordset") ConfigSql = "SELECT * FROM Admin;" objRec2.Open ConfigSql,objConn,0,1,&H0001 %>

    फिर आप HTML पृष्ठ के शीर्षक और मुख्य टैग को स्टाइल कर सकते हैं:

    चांदी की थाली पर एएसपी भाग 15 - DIY अतिथि पुस्तक

    "रंग ="<%=objRec2("PageFontColor")%>"आकार ="<%=objRec2("PageFontSize")%>">

    अतिथि पुस्तक देखें | अतिथि पुस्तिका में एक प्रविष्टि छोड़ें

    और अंत में, मॉड्यूल के आपके मुख्य और एकमात्र एएसपी पृष्ठ को संसाधित करने के लिए मुख्य लूप इस तरह दिखेगा:

    <% select case Request.QueryString("mode") case "post" Dim Field Dim dictFields Set dictFields = Server.CreateObject("Scripting.Dictionary") For Each Field in Request.Form If ValidateField(Request.Form(Field), Field) = False Then dictFields.Add LCase(Field), True End If Next If Request.Form.Count <>0 और dictFields.Count = 0 फिर कॉल अपडेट करें अन्यथा Request.Form.Count<>0 फिर समाप्त करें यदि शोफॉर्म ("साइन") समाप्त होता है यदि मामला "दिखाएं" कॉल शो केस अन्यथा कॉल शो एंड एंड का चयन करें%>

    हमारे वेब एप्लिकेशन के दो कार्यों के अनुरूप यहां केवल दो मामलों पर विचार किया गया है: गेस्टबुक में एक नई प्रविष्टि जोड़ना (मोड पैरामीटर का मान = "पोस्ट") और गेस्टबुक संदेश देखना (पैरामीटर मोड का मान = "शो" )

    <% objRec2.Close Set objRec2 = Nothing s objConn.Close Set objConn = Nothing Response.Write "

    " %>

    निष्कर्ष

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

    बेशक, प्रशासनिक सेटिंग्स (योजनाओं) को संपादित करने, जोड़ने और हटाने के लिए वेब इंटरफ़ेस पर भी विचार किया जाना चाहिए, लेकिन इसमें बहुत समय लगेगा, और इसलिए लेखक इसे इस लेख के निम्नलिखित भागों में से एक में कवर करने का प्रयास करेंगे।

    कंप्यूटरप्रेस 11 "2001