WordPress
अपनी स्थापना सुरक्षित करें
खोज…
टिप्पणियों
वर्डप्रेस वेबसाइट अक्सर हैक की जाती हैं। यह विषय उन तकनीकों और प्रथाओं के लिए है, जो आपके वर्डप्रेस इंस्टॉलेशन की सुरक्षा को एक बेस इंस्टाल में हासिल किए जाने से आगे बढ़ाते हैं।
इस विषय के अलावा, वर्डप्रेस इंस्टॉलेशन हासिल करने के बारे में पढ़ने के लिए एक और अच्छी जगह हार्डनिंग वर्डप्रेस कोडेक्स पेज है ।
फ़ाइल संपादक अक्षम करें
वर्डप्रेस के साथ शिप करने वाला फाइल एडिटर एक सुरक्षा जोखिम है। यदि कोई हमलावर आपकी वर्डप्रेस वेबसाइट तक पहुंच प्राप्त करता है, तो वे आसानी से थीम और प्लगइन फ़ाइलों में दुर्भावनापूर्ण कोड डालने में सक्षम होंगे। यह ग्राहकों के साथ एक जोखिम भी है जो नहीं जानते कि वे क्या कर रहे हैं। एक बार फ़ाइल एडिटर में गलत तरीके से रखे गए कॉलोन किसी साइट को तोड़ सकते हैं और उसे ब्राउज़र से अप्राप्य बना सकते हैं।
अपने वर्डप्रेस wp-config.php
फ़ाइल में, कोड की निम्न पंक्ति जोड़कर फ़ाइल संपादक को अक्षम करें।
define( 'DISALLOW_FILE_EDIT', true );
जब आपके विषय के functions.php
जोड़ दिया जाए तो उस लाइन का वांछित प्रभाव होगा। wp-config.php
फ़ाइल भी लेकिन wp-config.php
जोड़ना बेहतर है।
यदि आप वर्डप्रेस को स्थापित करने के लिए वर्डप्रेस सीएलआई का उपयोग कर रहे हैं, तो आप फ़ाइल संपादन अक्षम के साथ एक wp-config.php
फ़ाइल बनाने के लिए निम्न कमांड का उपयोग कर सकते हैं।
/* declare variables beforehand or substitute strings in */
wp core config --dbname="$MYSQL_DBNAME" --dbuser="$MYSQL_USERNAME" --dbpass="$MYSQL_PASS" --dbprefix="$WP_DBPREFIX"_ --locale=en_AU --extra-php <<PHP
define( 'DISALLOW_FILE_EDIT', true );
PHP
यदि आप एक स्क्रिप्ट के साथ वर्डप्रेस स्थापित करते हैं तो यह विधि उपयोगी है।
Wp-config.php ले जाएँ
वर्डप्रेस इंस्टॉल की सबसे संवेदनशील जानकारी wp-config.php
फ़ाइल में संग्रहीत है। यदि किसी हैकर को इस फ़ाइल तक पहुंच प्राप्त होती है तो उनके पास आपकी वेबसाइट का कुल नियंत्रण होता है।
डिफ़ॉल्ट रूप से wp-config.php
वर्डप्रेस इंस्टॉल फ़ोल्डर में संग्रहीत किया जाता है। इस फ़ाइल को चोरी करने के लिए कठिन बनाने के लिए आप इसे वेब एक्सेस फ़ोल्डर से बाहर ले जा सकते हैं। यदि आप इसे केवल एक फ़ोल्डर ऊपर ले जाते हैं, तो वर्डप्रेस स्वचालित रूप से इसे ढूंढ लेगा। यदि आप wp-config.php
को किसी अन्य स्थान पर ले जाते हैं, तो वर्डप्रेस इंस्टॉलेशन फ़ोल्डर में wp-config.php
नामक एक खाली फ़ाइल बनाएं। फिर निम्नलिखित जोड़ें:
define('ABSPATH', dirname(__FILE__) . '/');
// '../../wp-config.php' defines location two folders above installation folder.
// Substitute with actual location of wp-config.php file as necessary.
require_once(ABSPATH . '../../wp-config.php');
आपको जिस फ़ोल्डर में wp-config.php रखा गया है, उसमें php
निष्पादन योग्य बनाने की आवश्यकता हो सकती है। आपको php को यथासंभव कुछ फ़ोल्डरों में निष्पादन योग्य बनाना चाहिए। एक अच्छी प्रणाली वर्डप्रेस इनस्टॉल /path/to/wordpress/install/
और इन /path/to/wordpress/config
/path/to/wordpress/install/
। आप सुनिश्चित करेंगे कि कॉन्फ़िगरेशन फ़ोल्डर वेब एक्सेस नहीं है और कोई अन्य संवेदनशील जानकारी फ़ोल्डर पदानुक्रम में /path/to/
या अधिक में रखी जाएगी। उस स्थिति में आप अपने php.ini
में निम्नलिखित के समान एक पंक्ति लिखेंगे:
open_basedir = "/path/to/wordpress/install/;/path/to/wordpress/config"
यह तकनीक विवादास्पद है और कुछ लोगों को नहीं लगता कि यह सुरक्षा को बढ़ाता है। इस WordPress StackExchange सवाल पर विषय पर व्यापक चर्चा पढ़ी जा सकती है।
WordPress तालिकाओं के लिए एक कस्टम उपसर्ग सेट करें
जब आप अपने सर्वर पर वर्डप्रेस इंस्टॉल करते हैं, तो इंस्टॉलेशन स्क्रिप्ट सभी वर्डप्रेस MySQL टेबल नामों के सामने एक उपसर्ग लगाएगा। यह उपसर्ग डिफ़ॉल्ट रूप से 'wp_' पर सेट है। उदाहरण के लिए वर्डप्रेस पोस्ट टेबल को wp_posts
कहा जाएगा। तालिका उपसर्ग को बदलकर आप अस्पष्टता से कुछ सुरक्षा बना सकते हैं। इस तरह जब कोई हैकर SQL इंजेक्शन के हमलों का प्रयास करता है, तो उन्हें 'wp_' का उपयोग करने के बजाय आपकी तालिका के उपसर्ग का अनुमान लगाना होगा। इस उपसर्ग को आप जो चाहें पसंद कर सकते हैं।
नए वर्डप्रेस इंस्टॉलेशन में उपसर्ग सेट करें
यदि प्रसिद्ध 5 मिनट की स्थापना का उपयोग कर रहे हैं, तो स्थापना के दौरान क्षेत्र में उपसर्ग बदलें।
यदि वर्डप्रेस सीएलआई के माध्यम से इंस्टॉल करना निम्न कमांड का उपयोग करता है:
// set other variables above, or substitute your strings in.
WP_DBPREFIX=foo
wp core config --dbname="$MYSQL_DBNAME" --dbuser="$MYSQL_USERNAME" --dbpass="$MYSQL_PASS" --dbprefix="$WP_DBPREFIX"_ --locale=en_AU
मौजूदा स्थापना में उपसर्ग बदलें
उपसर्ग को बदलना थोड़ा अधिक कठिन है। सबसे पहले wp-config.php
फाइल को एडिट करने के लिए FileZilla जैसे FTP प्रोग्राम का उपयोग करें। प्रविष्टि बदलें $table_prefix = 'wp_';
से $table_prefix = 'foo_';
अपने वांछित उपसर्ग के लिए 'फू' को प्रतिस्थापित करना।
अगला हमें डेटाबेस को संपादित करने की आवश्यकता होगी। यदि आपके पास phpMyAdmin तक पहुँच है, तो लॉगिन करें और निम्न कार्य करें:
- वर्डप्रेस डेटाबेस का चयन करें
- सभी तालिकाओं का चयन करें और ड्रॉपडाउन में तालिका उपसर्ग का चयन करें।
- "से" टाइप करें 'wp_'। इस उदाहरण में "अपना" उपसर्ग टाइप करें, 'foo_' और "सबमिट करें" दबाएँ।
- टेबल्स अब इस तरह दिखना चाहिए:
यदि आप phpMyAdmin का उपयोग नहीं कर सकते हैं तो निम्न MySQL कमांड का उपयोग करें:
RENAME table `wp_comments` TO `foo_comments`
आपको प्रत्येक तालिका के लिए उस आदेश को चलाने की आवश्यकता होगी, अन्य तालिका नामों के लिए 'टिप्पणियों' को प्रतिस्थापित करना।
आगे हमें कुछ तालिकाओं में कुछ प्रविष्टियों को बदलने की आवश्यकता है। इस क्वेरी को 'foo_options' तालिका पर चलाएँ
SELECT * FROM foo_options WHERE option_name LIKE '%user_roles%'
'Wp_user_roles' के विकल्प_नाम के साथ एक प्रविष्टि दिखाई देनी चाहिए। उस प्रविष्टि में wp_user_roles से wp_user_roles
में 'विकल्प_नाम' प्रविष्टि foo_user_roles
।
फिर 'foo_usermeta' तालिका खोलें और सामने 'wp_' के साथ हर प्रविष्टि ढूंढें। और इसे 'foo_' में बदलें। आपके द्वारा परिवर्तित की जाने वाली प्रविष्टियों की संख्या इस बात पर निर्भर करेगी कि आपके पास कितने उपयोगकर्ता हैं।
मौजूदा स्थापना में आपको उपसर्ग बदलने की आवश्यकता है