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

GreenSQL Microsoft SQL 2000/2005/2008, MySQL 4.x / 5.x, PostgreSQL 7.x / 8.x का समर्थन करता है और क्रॉस-प्लेटफ़ॉर्म है। आधिकारिक तौर पर समर्थित प्लेटफ़ॉर्म में Microsoft Windows Server 2003/2008, Ubuntu, CentOS हैं। 32-बिट और 64-बिट सिस्टम समर्थित हैं।
लागत के लिए, कार्यक्रम के कई संशोधन हैं - एक मासिक भुगतान के साथ मुफ्त एक्सप्रेस, लाइट और प्रो। भुगतान किए गए संस्करणों और मुक्त लोगों के बीच मुख्य अंतर, यदि आप तकनीकी सहायता और स्वचालित अपडेट को छोड़ देते हैं, तो मक्खी पर अनुरोधों को संशोधित करने और सुरक्षित एसएसएल कनेक्शन के साथ काम करने की क्षमता है।
GreenSQL का प्रत्येक संस्करण ऑपरेशन के कई तरीकों का समर्थन करता है।
जोखिम आधारित - IPS / IDS संभावित खतरनाक SQL प्रश्नों की पहचान के लिए एक बुनियादी एल्गोरिथ्म को लागू करता है। यानी GreenSQL क्वेरी का एक अर्थपूर्ण विश्लेषण करता है और, अप्रत्यक्ष संकेतों द्वारा, इसकी विश्वसनीयता की डिग्री निर्धारित करता है। खतरे की डिग्री की गणना निम्नलिखित मापदंडों को ध्यान में रखते हुए की जाती है:
- संचालन जो तालिकाओं की संरचना को बदलते हैं
- सेवा तालिकाओं और डेटाबेस के लिए प्रश्न
- फ़ाइल सिस्टम एक्सेस का उपयोग करके प्रश्न
- प्रशासनिक प्रश्न, उदाहरण
- तुलना संचालन जो हमेशा TRUE लौटाते हैं, उदाहरण के लिए, 1 = 1, फ़ील्ड = फ़ील्ड
- अनुरोध के अंदर टिप्पणी
- अनुरोध में OR का उपयोग करना
- व्यक्तिगत जानकारी वाली तालिकाओं पर संचालन, उदाहरण के लिए, उपयोगकर्ता, खाते, भुगतान
- अनुरोध में खाली पासवर्ड पास करना, उदाहरण के लिए, पासवर्ड = ``, pwd = '', passw = ''
आवश्यक अवरुद्ध अनुरोधों को अनुमत सूची (श्वेतसूची) में जोड़ा जा सकता है।
डेटाबेस फ़ायरवॉल एक सक्रिय सुरक्षा मोड है जो केवल श्वेतसूची सूची के अनुरोधों को छोड़ देता है।
लर्निंग मोड - एक प्रशिक्षण मोड जिसके दौरान सभी अनुरोध (या बल्कि, क्वेरी टेम्प्लेट) अनुमत (श्वेतसूची) की सूची में आते हैं। इस प्रकार, प्रशिक्षण मोड में, आप अपने एप्लिकेशन को पूंछ और माने में चला सकते हैं ताकि यह "क्लीन" अनुरोधों के डेटाबेस को इकट्ठा करे, और फिर सभी अज्ञात अनुरोधों को रोकने के साथ "मुकाबला" मोड को चालू करें (डेटाबेस फ़ायरवॉल + सक्रिय सुरक्षा)।
कार्यक्रम सेटिंग्स
GreenSQL एक सेवा (डेमॉन) के रूप में शुरू होती है। सेटिंग्स को
127.0.0.1 : 5000 पर स्थित वेब इंटरफेस के माध्यम से प्रबंधित किया जाता है।

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

आरंभ करने के लिए, आपको एक प्रॉक्सी बनाने की आवश्यकता है। मुफ्त संस्करण में आप केवल एक प्रॉक्सी बना सकते हैं। बनाने के लिए, डेटाबेस> प्रॉक्सी बनाएं पर जाएं।

- प्रॉक्सी नाम - GreenSQL के अंदर पहचान के लिए प्रॉक्सी नाम
- डेटाबेस प्रकार - संरक्षित DBMS का प्रकार
- उपयोगकर्ता नाम और पासवर्ड - DBMS में प्राधिकरण के लिए लॉगिन और पासवर्ड। यह वैकल्पिक है, लेकिन उनका संकेत सूची से डेटाबेस ऑब्जेक्ट का चयन करने के लिए आगे कॉन्फ़िगरेशन में मदद करता है, और मैन्युअल रूप से दर्ज नहीं करता है
- फ्रंटेंड आईपी - जिस पर आईपी प्रॉक्सी काम करेगा (मशीन पर कई नेटवर्क कनेक्शन के मामले में वास्तविक)। 0.0.0.0 का अर्थ है सभी नेटवर्क इंटरफेस पर काम करना
- फ्रंटेंड पोर्ट - जिस पोर्ट पर प्रॉक्सी काम करेगा। यह वह पोर्ट है जिसे DBMS से कनेक्ट करने के लिए आपके एप्लिकेशन में उपयोग किया जाना चाहिए
- बैकएंड सर्वर नाम - संरक्षित डीबीएमएस का नाम। यह कुछ भी हो सकता है, यह GreenSQL के अंदर पहचान के लिए आवश्यक है (मैं स्थानीयहोस्ट लिखता हूं)
- बैकएंड आईपी - आईपी पता जिस पर संरक्षित डीबीएमएस चल रहा है (उदाहरण के लिए, 127.0.0.1)
- बैकेंड पोर्ट - पोर्ट जिस पर संरक्षित DBMS चल रहा है (आमतौर पर, MySQL के लिए - 3306, MSSQL के लिए - 1433, PostgreSQL के लिए - 5432)
प्रॉक्सी बनाने के बाद, इसे निर्दिष्ट पोर्ट पर लॉन्च किया जाएगा। अब आपको बस अपने आवेदन में GreenSQL का उपयोग शुरू करने के लिए प्रॉक्सी (नीति) के नियमों को निर्धारित करने की आवश्यकता है। सिद्धांत रूप में, पहले से ही इस स्तर पर आप अपने आवेदन को ग्रीनएसक्यू के साथ काम करने के लिए कॉन्फ़िगर करने का प्रयास कर सकते हैं, हालांकि, यह "पारदर्शी" मोड में काम करेगा।

- नियम प्रकार - नियम प्रकार (लर्निंग मोड, डेटाबेस फ़ायरवॉल, जोखिम आधारित)। किस प्रकार का चयन किया जाता है इसके आधार पर, भरने के लिए फ़ील्ड बदल दिए जाते हैं।
- डेटाबेस - DBMS में संरक्षित डेटाबेस का नाम
- प्रॉक्सी - वह प्रॉक्सी जिस पर नियम लागू होता है।
- IPS / IDS (मोड) - सभी प्रकार के नियमों के लिए सामान्य है।
- कोई आईपीएस / आईडीएस - स्वचालित हमले का पता लगाने का उपयोग न करें
- सक्रिय सुरक्षा - संभावित खतरनाक अनुरोधों को ब्लॉक करें
- निगरानी - लॉग करें और संभावित खतरनाक अनुरोधों को ब्लॉक न करें
अब आप GreenSQL का उपयोग करने के लिए अपने एप्लिकेशन को कॉन्फ़िगर करने का प्रयास कर सकते हैं।
उत्पादकता
प्रदर्शन परीक्षण आधिकारिक
GreenSQL वेबसाइट से लिया गया। परीक्षण का सार यह है कि अपाचे बेंच के माध्यम से 400 हिट और 10 प्रतिस्पर्धी प्रश्नों में कई माप किए गए थे। परीक्षा परिणाम छवि में दिखाया गया है।

ग्रीनएसक्यू अच्छा उपयोग प्रलेखन के साथ आता है। यहां मैंने इसे अनुवाद करने की कोशिश नहीं की, बल्कि कार्यक्रम के मूल कार्यक्षमता के सामान्य उद्देश्य और सेटिंग्स को रेखांकित किया। GreenSQL के पिछले संस्करण (1.2, वर्तमान - 1.5 तक) GPL के तहत वितरित किए गए थे।
आधिकारिक साइट
www.greensql.com ,
www.greensql.net