सुहोसिन का अंत; आगे क्या है?

कई सालों तक, मैंने उत्साह से इस्तेमाल किया है सुहोसिन SQL इंजेक्शन और अन्य सामान्य वेब हमलों से बचाव के लिए Apache2 या PHP-FPM Nginx वेबसर्वर पर PHP5 के किसी भी कार्यान्वयन के साथ. वास्तव में, PHP5 इतना विनाशकारी था, दोनों अपनी मुख्य सुरक्षा के संदर्भ में, और इसके कार्य और मॉड्यूल जो मैं कभी भी सुहोसिन द्वारा प्रदान किए गए किसी भी महत्वपूर्ण कठोरीकरण के बिना इसका उपयोग करके कल्पना नहीं कर सकता था.
चूंकि PHP5 का अवमूल्यन हुआ है और मेरे विरासत कार्यक्रम सभी चले गए हैं, मेरे पास PHP7 के कई कार्यान्वयन बचे हैं और कोई उपलब्ध सुहोसिन पैच नहीं है.
यद्यपि, सुहोसिन को PHP में जोड़ना अभी भी तकनीकी रूप से संभव है 7.0 और 7.1 (प्री-अल्फा - उत्पादन के लिए नहीं), यह कहना उचित है कि परियोजना लंबे समय से चली गई है और PHP7 ने पहले ही साबित कर दिया है कि यह परेशानी हो सकती है जैसे कि यह अपने पूर्ववर्ती था. जैसा कि मैं डब्ल्यूएएफ और PHP7 की मुख्य सुरक्षा के लिए एक नए अतिरिक्त के बारे में सोच रहा हूं, ये कुछ समाधान हैं जिनके साथ मैं आया था:
खराब या अनावश्यक कार्यों को अक्षम करना
PHP के अंदर कई जोखिम भरे कार्य बनाए गए हैं जो संभावित रूप से खतरनाक हैं और डिफ़ॉल्ट रूप से 'php.ini' के अंदर अक्षम किया जाना चाहिए. आप नीचे दिए गए कमांड का उपयोग करके कॉन्फ़िगरेशन फ़ाइल पा सकते हैं और वीआई या नैनो के माध्यम से कार्यों को अक्षम कर सकते हैं.
php -i | grep "php.ini"
कृपया ध्यान दें: यदि आप PHP के विभिन्न संस्करण एक साथ चला रहे हैं या प्रोग्राम किसी अन्य तृतीय-पक्ष अनुप्रयोग के भाग के रूप में स्थापित है, फिर संभावना अधिक है कि आपके पास कई 'php.ini' स्थापित हैं और यह स्पष्ट नहीं है कि कौन सा वेबसर्वर द्वारा लोड किया गया है. सुनिश्चित करें कि आप सही संस्करण संपादित कर रहे हैं (php-v).
'php.ini' फ़ाइल के अंत में नीचे दी गई पंक्ति जोड़ें, सुनिश्चित करें कि आपने फ़ाइल सहेजी है, और वेबसर्वर को पुनरारंभ करें. आप इन PHP कार्यों में से प्रत्येक के बारे में जान सकते हैं इस पते पर. एक मापा कार्रवाई के रूप में, आप यह सुनिश्चित करने के लिए उन्हें एक-एक करके जोड़ना चाह सकते हैं कि यह आपके अनुप्रयोगों को नकारात्मक रूप से प्रभावित नहीं करता है.
disable_functions = popen, eval, leak, exec, shell_exec, curl_exec, curl_multi_exec, parse_ini_file, mysql_connect, system, phpinfo, escapeshellarg, escapeshellcmd, passthru, symlink, show_source, mail, sendmail, proc_open, proc_nice, proc_terminate, proc_get_status, proc_close, pfsockopen, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid
रजिस्टर ग्लोबल्स और बेस 64 को अक्षम करना
रजिस्टर ग्लोबल PHP द्वारा एक फ़ंक्शन है जो URL में इनपुट सरणी को आपके कोड के अंदर चर में परिवर्तित करने की अनुमति देता है. इसलिए, किसी भी संभावित कमजोर कोड का उपयोग एक हमलावर द्वारा किया जा सकता है जो HTTP GET या POST अनुरोधों का उपयोग करके दुर्भावनापूर्ण सरणी पारित कर सकता है.
रजिस्टर ग्लोबल्स को 'php.ini' के अंत में नीचे दी गई पंक्ति को जोड़कर आसानी से अक्षम किया जा सकता है. परिवर्तनों को निष्पादित करने के लिए वेबसर्वर को पुनरारंभ करना न भूलें.
register_globals = Off
रजिस्टर ग्लोबल्स की तरह, Base64 एक और अक्सर अनावश्यक विशेषता है जो दरवाजे को दुर्भावनापूर्ण बैक-डोर में खोलती है. आप 'php.ini' के अंत में नीचे दी गई पंक्ति जोड़कर Base64 डिकोडर को स्थायी रूप से अक्षम कर सकते हैं.
base64_decode = Off
Post Disclaimer
The views, information, or opinions expressed are solely those of the author and do not necessarily represent those of his employer or the organizations with which he is affiliated.
The information contained in this post is for general information purposes only. The information is provided by Farhad Mofidi and while he strives to keep the information current and accurate, he does not make any representations or warranties of any kind, express or implied, regarding the completeness, accuracy, reliability, suitability or availability of the website. Farhad makes no representations or warranties. or any information, products or related graphics contained in any Post for any purpose.
Also, AI may be employed as a tool to provide suggestions and improve some of the contents or sentences. The ideas, thoughts, opinions, and final products are original and human-made by the author.