FS_METHOD को "डायरेक्ट" में wp-config में सेट करते समय मुझे क्या सुरक्षा चिंताएँ होनी चाहिए?


36

मेरे पास हाल ही में एक समस्या है जहां मैं WP स्मुश प्रो प्लगइन स्थापित करने में असमर्थ रहा हूं क्योंकि मेरे पास मैनुअल इंस्टाल या वन-क्लिक इंस्टॉलेशन उपलब्ध नहीं है।

मुझे इस पोस्ट के बारे में पता चला जिसने सुझाव दिया कि सेटिंग्स को ट्विक करना wp-config.php। मैंने सुझाई गई सेटिंग्स को जोड़ा, हालांकि जो सबसे महत्वपूर्ण लगता है वह है:

define('FS_METHOD', 'direct');

क्या मैं जानना चाहूंगा कि क्या वास्तविक चिंताओं मैं चारों ओर की स्थापना किया जाना चाहिए था है FS_METHODके लिए direct? क्या प्लगइन स्थापित करने के लिए कोई अन्य विकल्प हैं?

आधिकारिक दस्तावेज का यही कहना है:

FS_METHOD फाइलसिस्टम विधि को बाध्य करता है। यह केवल "प्रत्यक्ष", "ssh2", "ftpext", या "ftpsockets" होना चाहिए। यदि आप अद्यतन समस्याओं का सामना कर रहे हैं, तो आमतौर पर, आपको इसे बदलना चाहिए। यदि आप इसे बदलते हैं और यह मदद नहीं करता है, तो इसे वापस बदल दें / हटा दें। अधिकांश परिस्थितियों में, इसे 'फीटपॉकेट्स' में सेट करना अगर स्वचालित रूप से चुनी गई विधि नहीं करता है तो यह काम करेगा।

(प्राथमिक प्राथमिकता) "प्रत्यक्ष" यह PHP के भीतर से डायरेक्ट फाइल I / O अनुरोधों का उपयोग करने के लिए मजबूर करता है, यह खराब कॉन्फ़िगर किए गए मेजबानों पर सुरक्षा मुद्दों को खोलने के साथ भरा हुआ है, यह उपयुक्त होने पर स्वचालित रूप से चुना जाता है।

जवाबों:


33

यह सिर्फ है, मैंने वर्डप्रेस फ़ाइल एपीआई के विचार को कैसे समझा । यदि यह गलत है, तो कृपया नीचे जाएं :)

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

यदि आप PHP का उपयोग करके एक फ़ाइल अपलोड करते हैं, तो लिनक्स को निष्पादित करने वाला लिनक्स उपयोगकर्ता फ़ाइल का मालिक है। यह उपयोगकर्ता अब फ़ाइल को संपादित, हटा सकता है, निष्पादित कर सकता है आदि। यह तब तक ठीक है जब तक आप केवल उपयोगकर्ता हैं, जो आपके सिस्टम पर PHP निष्पादित कर रहा है।

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

[warning] /var/www/vhosts/userxyz/wp-content/plugins/bad-plugin/doesnt-execute-correctly.php on line 1

"हा!" बुरा लड़का कहता है। देखते हैं, अगर यह आदमी के लिए सेट FS_METHODहै directऔर वह एक स्क्रिप्ट लिखता है

<?php
unlink( '/var/www/vhosts/userxyz/wp-content/plugins/bad-plugin/doesnt-execute-correctly.php' );
?>

चूंकि केवल एक उपयोगकर्ता PHP चला रहा है और इस उपयोगकर्ता का उपयोग उस बुरे लड़के द्वारा भी किया जाता है जिसे वह आपके सिस्टम पर फ़ाइलों को बदल / हटा / निष्पादित कर सकता है यदि आपने उन्हें PHP के माध्यम से अपलोड किया है और इसके द्वारा PHP उपयोगकर्ता को स्वामी के रूप में संलग्न किया है।

आपकी साइट हैक हो गई है

या, जैसा कि कोडेक्स में कहा गया है:

कई होस्टिंग सिस्टम में वेबसर्वर वर्डप्रेस फ़ाइलों के मालिक की तुलना में एक अलग उपयोगकर्ता के रूप में चल रहा है। जब ऐसा होता है, तो वेबसर्वर उपयोगकर्ता की फ़ाइलों को लिखने वाली एक प्रक्रिया के परिणामस्वरूप परिणामी फाइलें वेबसर्वर के उपयोगकर्ता खाते के बजाय वास्तविक उपयोगकर्ता के खाते में होंगी। यह साझा होस्टिंग स्थितियों में एक सुरक्षा समस्या पैदा कर सकता है, जहां कई उपयोगकर्ता विभिन्न साइटों के लिए एक ही वेबसर्वर साझा कर रहे हैं।


15

जोखिम क्या है?

खराब रूप से कॉन्फ़िगर किए गए साझा होस्ट पर, प्रत्येक ग्राहक का PHP एक ही उपयोगकर्ता के रूप में निष्पादित करेगा (चलो apacheचर्चा के लिए कहते हैं )। यह सेटअप आश्चर्यजनक रूप से सामान्य है।

यदि आप इस तरह के होस्ट पर हैं और वर्डप्रेस का उपयोग करके डायरेक्ट फाइल एक्सेस का उपयोग करके प्लगइन स्थापित करते हैं, तो आपकी सभी प्लगइन फाइलें संबंधित हैं apache। एक ही सर्वर पर एक वैध उपयोगकर्ता एक PHP स्क्रिप्ट लिखकर आप पर हमला करने में सक्षम होगा जो आपकी प्लगइन फ़ाइलों में बुराई कोड को इंजेक्ट करता है। वे अपनी स्क्रिप्ट को अपनी वेबसाइट पर अपलोड करते हैं और इसके URL का अनुरोध करते हैं। आपके कोड को सफलतापूर्वक समझौता किया जाता है क्योंकि उनकी स्क्रिप्ट के रूप में चलता है apache, वही जो आपके प्लगइन फ़ाइलों का मालिक है।

इससे क्या FS_METHOD 'direct'लेना-देना है?

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

डिफ़ॉल्ट व्यवहार यह पता लगाने की कोशिश करेगा कि क्या आप एक जोखिम वाले वातावरण में हैं, जैसा कि मैंने ऊपर वर्णित किया है, और अगर आपको लगता है कि आप सुरक्षित हैं तो यह 'direct'विधि का उपयोग करेगा । इस स्थिति में वर्डप्रेस सीधे PHP के माध्यम से फाइलें बनाएंगे, जिससे वे apacheउपयोगकर्ता (इस उदाहरण में) से संबंधित होंगे। अन्यथा यह सुरक्षित पद्धति पर वापस आ जाएगा, जैसे कि आपको SFTP क्रेडेंशियल के लिए संकेत देना और आपके जैसी फ़ाइलें बनाना।

FS_METHOD = 'direct'वर्डप्रेस से पूछता है कि जोखिम का पता लगाने के लिए और हमेशा'direct' विधि का उपयोग करके फाइलें बनाएं ।

फिर उपयोग क्यों FS_METHOD = 'direct'?

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

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


1

एक 'सुव्यवस्थित' स्थिति है जहाँ 'प्रत्यक्ष' समस्याओं को जन्म देगा।

गैर-साझा किए गए PHP निष्पादन उपयोगकर्ताओं के साथ साझा WP होस्टिंग को कॉन्फ़िगर करना भी संभव है, फ़ाइल / निर्देशिका स्वामित्व उपयोगकर्ताओं से अलग। तो आप user1 के स्वामित्व वाली फाइलों के साथ समाप्त हो जाते हैं और PHP कोड को php-user1 के रूप में निष्पादित किया जाता है।

उस स्थिति में, हैक किए गए प्लगइन्स या कोर कोड (ए) अनुमतियों के आधार पर (या यहां तक ​​कि पढ़ने के लिए नहीं लिख सकते हैं) अन्य उपयोगकर्ताओं की प्रत्यक्षता; (b) इस उपयोगकर्ता की फ़ाइलों को नहीं लिख सकता है और इसलिए कोर या प्लगइन कोड में ट्रोजन कोड नहीं जोड़ सकता है।

इसलिए यदि होस्टिंग की स्थापना की जाती है, तो आप अपडेट के लिए एफ़टीपी का उपयोग करें और 'डायरेक्ट' काम नहीं करेगा।

यदि आप wp-config.php में 'प्रत्यक्ष' सेट करते हैं और PHP निष्पादन उपयोगकर्ता के पास लिखित अनुमति नहीं है, तो आपको अद्यतन विफल संदेश मिलेंगे और एफ़टीपी क्रेडेंशियल के लिए कोई पॉप-अप नहीं पूछेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.