अस्थायी उपाय अधूरे हैं
सिर्फ पूरा पैच सभी रूप सुधारता है। सेटिंग अपलोड, प्रदर्शन और उपलब्धता बदल सकती है। parsing से पहले प्रशासनिक स्तर पर लगाएँ और सभी वर्कर पुनः शुरू करें। दोनों सूचना पढ़ें। CDN और WAF सुधार प्रमाण नहीं।
मेमोरी सेटिंग में सावधानी
memory_limit=-1 कुछ नियंत्रित PHP OOM हटाता है, OS allocation failure नहीं। अलग container या cgroup सीमा चाहिए। RLIMIT_AS या RLIMIT_DATA न लगाएँ। decoded आकार, multipart header, भाग और गहराई सीमित करें; post_max_size अकेला पर्याप्त नहीं।
अपलोड प्रगति और backtrace
parsing से पहले session.upload_progress.enabled=0 करें और पुनः शुरू करें। PHP 8.5 में fatal_error_backtraces=0 केवल पुष्ट मार्ग रोकता है। शुरुआती diagnostic देने वाले गलत INI हटाएँ। display_errors, error_reporting और @ खामी नहीं रोकते। कोई सेटिंग सब नहीं ढकती।
रास्ते के अनुसार अस्थायी उपाय
पहले पैच करें। तब तक अनुरोध पार्सिंग से पहले व्यवस्थापकीय रूप से session.upload_progress.enabled=0 लागू कर वर्कर रीस्टार्ट करें। PHP 8.5 में fatal_error_backtraces=0 अन्य रास्ता घटाता है। डिकोड आकार, multipart भाग/हेडर और गहराई जल्दी सीमित करें। सामान्य अपलोड जाँचें। त्रुटि प्रदर्शन या लॉग बंद करने से निदान वाला रास्ता नहीं रुकता।
PHP2Shell उपकरण →मेमोरी और पुनर्चक्रण की सीमाएँ
व्यवस्थापकीय memory_limit=-1 केवल कुछ OOM रास्ते हटाता है; स्वतंत्र cgroup/कंटेनर सीमा, ऐप को सीमित मान लौटाने से रोकना और रीस्टार्ट जरूरी हैं। RLIMIT_AS या RLIMIT_DATA कभी न लगाएँ: आवंटन विफलता कमजोर रास्ते में जा सकती है। pm.max_requests=1 महँगा है और कुछ अंतर अनुरोध स्थिति ही घटाता है। दोनों पूर्ण पैच का विकल्प नहीं।
PHP2Shell उपकरण →कमांड उदाहरण / PHP INI
; Temporary measures only. Follow both PHP advisories.
; Apply administratively BEFORE request parsing, then restart workers.
session.upload_progress.enabled = 0
; PHP 8.5 only:
fatal_error_backtraces = 0
; memory_limit = -1 is NOT a complete fix.
; It needs independent OS/container resource containment.
; Never substitute RLIMIT_AS or RLIMIT_DATA.