آموزش امنیت وردپرس بدون نیاز به نصب پلاگین

وردپرس به ذات امن است اما با این حال عدم شناخت درست مدیران سایت ها نسبت به راه های نفوذ به وردپرس  باعث هک شدن سایت های زیادی شده است . بسیاری از سایت های وردپرس بخاطر نصب شدن پلاگین هاو پوسته های نا ایمن بر روی آنها هک می شوند ، بسیاری از انها بخاطر نا امن بودن هاست خود هک می شوند و برخی از آنها بخاطر عدم رسیدگی درست مدیر سایت مورد حمله قرا می گیرند . بسیاری از مدیران سایت ها بخاطر عدم شناخت درست از امنیت وردپرس یا اصلا به مبحث امنیت نمی پردازند یا امنیت از نظر آنها محدود به نصب یکی دو پلاگین به اصطلاح امنیتی است در حالی که همین پلاگین ها هم می توانند برای سایت خطرناک باشند و حتی عاملی شوند برای هک شدن سایت! درست است ، بسیاری از پلاگین های امنیت هم دچار مشکلات امنیتی هستند . در این نوشته سعی شده راه های ایمن سازی سایت های وردپرس بدون نیاز به نصب هرگونه پلاگین آموزش داده شود تا هم با مفهوم های امنیتی بیشتر آشنا شوید، هم تسلط کامل بر روی نقاط ضعف و قوت امنیت سایت خود پیدا کنید و امینت سایت خود را بالا ببرید بدون اینکه پاشنه آشیل دیگری بنام پلاگین امنیتی به سایت خود اضافه کنید .

توجه : قبل از انجام تغییرات زیر از دیتابیس خود و فایل هایی که تغییر می دهید فایل پشتیبان تهیه کنید.

استفاده از prefix  جدید برای جداول دیتابیس :

بصورت پیشفرض نام هر یک از جدول های پایگاه داده وردپرس دارای پیشوند wp_ است بطور مثال جدول wp_users  مخصوص اطلاعات کاربران مانند نام کاربری و پسوردهای وردپرس است. هکرها با دانستن نام کامل جداول وردپرس و  با استفاده از آسیب پذیری های sql injection  میتوانند به اطلاعات پایگاه داده سایت شما دسترسی پیدا کنند برای جلوگیری از این خطر بزرگ بهتر است پیشوند فوق را در هنگام نصب وردپرس تغییر دهید.

(در هنگام نصب وردپرس همراه با اطلاعات اتصال به پایگاه داده پیشوند جداول را نیز درخواست می کند)

فرم نصب وردپرس

فرم نصب وردپرس

در صورتی که پس از نصب وردپرس می خواهبد پیشوند فوق را تغییر دهید می توانید این پیسوند را در فایل کانفیگ وردپرس(wp-config.php) بصورت زیر پیدا کنید:

$table_prefix = 'wp_';

و آن را بصورت زیر تغییر داده و بجای newprefix پبشوند مورد نظر خود را قرار دهید:

$table_prefix = 'newprefix_';

صرف تغییر این پیشوند در فایل کانفیگ پیشوند جداول دیتابیس را اصلاح نمی کند و شما باید پیشوند جداول بصورت زیر اصلاح کنید:
در phpmyadmin دیتابیس مورد نظر را باز کرده و روی هر یکی از جداول کلیک نموده و تب operations را انتخاب کنید و در قسمت Table options فیلد rename table to پیشوند نام جدول را تغییر دهید .
توجه : بجای newprefix پبشوند مورد نظر خود را قرار دهید.

 استفاده از prefix  جدید برای جداول دیتابیس

استفاده از prefix جدید برای جداول دیتابیس

سپس با دقت این کار را باید برای همه جداول وردپرس تکرار کنید.
پس از تغییر نام جداول باید اطلاعات موجود در جداول USERMETA و OPTIONS را بروزرسانی کنید برای این کار کافیست بر روی تب sql در phpmyadmin کلیک کرده و دستورات زیر را وارد کنید:

UPDATE `newprefix_usermeta` SET `meta_key` = REPLACE( `meta_key`, 'wp_', 'newprefix_' );
UPDATE `newprefix_options` SET `option_name` = 'newprefix_user_roles' WHERE `option_name` = 'wp_user_roles' ;

توجه : بجای newprefix پبشوند مورد نظر خود را قرار دهید.

استفاده از کلیدهای امنیتی وردپرس

کلید های امنیتی وردپرس اولین بار از ورژن 2.6.0 معرفی شدند . این کلیدها امکان رمزگذاری کوکی های کاربران را فراهم میکنند و همچنین احتمال کرک شدن پسوردها را سیار زیاد کاهش می دهند.
این کلید های امنیتی در فایل کانفیگ وردپرس wp-config.php قرار می گیرند و بصورت پیشفرض بصورت زیر تعریف شده اند .

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

شما باید کلیدهای خود را تولید کرده و در فایل فوق قرار دهید وردپرس ابزاری را برای تولید کلیدهای تصادفی ایجاد کرده است که می توانید از آن استفاده کنید . برای این کار کافی است به مسیر زیر رفته و کلیدهای تصادفی مختص خود را دریافت کرده و بجای کد بالا قرار دهید.
https://api.wordpress.org/secret-key/1.1/salt

define('AUTH_KEY',         ';clSq]<NMMdVRjfTi}P?hCY{(,QCt(?ofsvFbM|8A*J+Q()zrp?<gs+B_Re I02Q'); define('SECURE_AUTH_KEY',  '!EZ@`p:y0aDT86tTA$&aZj)(mz|*Gm-&FOK?,+, #Yx%P;CjQA(V$U-~o|N^l.Ct'); define('LOGGED_IN_KEY',    '9Gy-ysf~q6gD.a!z+V.L`SGw7 OHpZBZ5+U1R%o7Y!9wp,=.=5*:&u!s$(fl>i71');
define('NONCE_KEY',        'bs-TYv_`Xwz(<tS6?xk@sv`+qi#5+B>sZE:b_zy ..GR=7*TBj}|Gp6$Or /}]7t');
define('AUTH_SALT',        'T,<&rY9o5+f,n&L?^,+#_LhrQb5ktd7:u*cDF-uj}?fHC sc=egppi@dkbCD`rw-'); define('SECURE_AUTH_SALT', '+#=&Pf[[Qxy)#%Ouo$>~dKa54r<Bt[)M#jUcm[UGlJ%i.^+&[{3EP :Pz*qUaplm');
define('LOGGED_IN_SALT',   'M`C0e;CIPl7~  XOoa|9+|j<Nb0Ui,28hYb)KhNb +D35I-|dyF|s_^5K]8J_/1]');
define('NONCE_SALT',       't~BrdInj[*;stIj[VU{W/#/`IG~)%U9/|bTl?6u[:c-JWp]/Cd9?poLP~;F/)i5C');

آپدیت هسته وردپرس ، قالب و پلاگین ها
تمامی آپدیت ها را جدی بگیرید و همواره از به روز بودن پلاگین ها ، قالب ها و هسته وردپرس مطمئن باشید.
معمولا انجام بروزرسانی خودکار به مدیران سایت ها توصیه نمی شود چرا که ممکن است منجر به آسیب رسیدن به سایت شود اما اگر مایل به بروزرسانی خودکار هسته ، پلاگین ها و قالب های وردپرس هستید باید کدهای زیر را در انتهای فایل کانفیگ وردپرس قرار دهید :
برای بروزرسانی خودکار هسته وردپرس:

define( 'WP_AUTO_UPDATE_CORE', true );

برای بروزرسانی خودکار پلاگین ها:

add_filter( 'auto_update_plugin', '__return_true' );

برای بروزرسانی خودکار قالب ها:

add_filter( 'auto_update_theme', '__return_true' );

حذف پلاگین ها و قالب های غیر ضروری
بیش از نیمی از دلایل هک شدن سایت های وردپرسی بخاطر وجود آسیب پذیری در پلاگین ها و قالب های انها است.
اخطار : هرگز از قالب ها و پلاگین های رایگانی که برخی سایت های ناشناس در اختیار شما قرار می دهند استفاده نکنید چرا که معمولا حاوی کدهای مخرب بوده و می توانند کنترل سایت شما را بصورت کامل در اختیار هکر ها قرار دهند.
پلاگین ها و قالب های غیر ضروری را حذف کنید .
بدانید که پلاگین هایی که مدت هاست بروزرسانی نشده اند و یا کمتر مورد استقبال کاربران قرار گرفته اند امکان هک شدن بیشتری دارند پس حتی الامکان از نصب چنین پلاگین هایی خودداری کنید.
هیچ گاه پلاگین ها و قالب ها را از جایی غیر از سایت رسمی وردپرس یا سایت رسمی آن پلاگین و قالب دانلود نکنید.

غبرفعال کردن دسترسی به ویرایش فایل های قالب و پلاگین ها از محیط داشبورد

اگر هکرها پسورد یک کاربر مدیر در وردپرس را بدست آورند می توانند به راحتی در کمتر از چند لحظه با استفاده از بخش ویرایش قالب ها و پلاگین ها کل host شما را در اختیار گرفته و سایت شما را نابود کنند برای جلوگیری از بروز این فاجعه بهتر است بخش ویرایش فایل های قالب ها و پلاگین ها از داخل داشبورد وردپرس را غیر فعال کنید . برای این کار کافیست کد زیر را به فایل کانفیگ وردپرس اضافه کنید :

define( 'DISALLOW_FILE_EDIT', true );

همچنین کد زیر علاوه بر محدودیت ویرایش فایل ها مانع از آپلود و بروزرسانی پلاگین ها و قالب ها توسط افراد غیر مجاز می شود :

define( 'DISALLOW_FILE_MODS', true );

پرمبژن بندی فایل ها و فولدرهای وردپرس

خیلی مهم است که تنظیمات مربوط به مجوز های دسترسی به فایل ها و فولدر ها را به درستی انجام دهید . هیچ چیز خطرناک تر از فایل یا فولدر دارای مجوز 777 برای امنیت یک سایت نیست چرا که به راحتی امکان آپلود فایل یا ویرایش فایل توسط هکرها را بوجود می آورد.
تنظیمات مناسب و ایمن برای وردپرس به شرح زیر است :
همه فولدرها باید مجوز 750 یا 755 داشته باشند.
همه فایل ها باید دارای مجوز 640 یا 644 باشند.
مجوز فایل wp-config.php باید 600 باشد.

غیر فعال کردن نمایش خطا در فایل کانفیگ وردپرس

درصورتی که سایت شما به هر دلیلی دچار مشکل شود ممکن است پیغام خطایی نمایش داده شود که حاوی اطلاعات مهمی باشد و توسط هکرها مورد استفاده قرار گیرد. شما باید نمایش پیغام های خطا را در سایت غیرفعال کنید .
نمونه یک پیغام خطا :

Warning: include(./file.php) [function.include]: failed to open stream: No such file or directory in  \home\users\web\site.com\inex.php on line 29

برای جلوگیری از نمایش پیغام های خطا کافیست کد زیر را در انتهای فایل کانفیگ وردپرس قرار دهید :

error_reporting(0);
@ini_set(‘display_errors’, 0);

توجه : در صورتی که کد بالا مانع نمایش پیغام های خطا نشد با مدیر هاست خود تماس بگیرید .

تنظیمات امنیتی با اسنفاده از htaccess
فایل htaccess. یک فایل بسیار قدرتمند برای مدیریت هاست است و یکی از مهم ترین موارد استفاده از آن افزایش امنیت سایت ها است. برای نمایش آموزش تنظیمات htaccess. در وردپرس به نوشته زیر مراجعه کنید :

آموزش امنیت وردپرس با htaccess

غیر فعال کردن سرویس xml-rpc

از نسخه 3.5 وردپرس به بعد xml-rpc بصورت پیش فرض فعال شده . xml-rpc این امکان را به کاربران می دهد تا بصورت remote به سایت متصل شوند یا از آن برای pinkback استفاده کنید اما متاسفانه هکرها از آن برای انجام عملیات DOS سایت ها استفاده می کنند که امکان از دسترس خارج شدن سایت را فراهم می کند . بهتر است xml-rpc را غیر فعال کنید . این کار با استفاده از کد زیر در انتهای فایل کانفیگ وردپرس امکان پذیر است :

add_filter('xmlrpc_enabled', '__return_false');

تغییر نام کاربری admin
نام کاربری admin یک نام کاربری پیشفرض برای وردپرس است که برای همه شناخته شده است و به همین دلیل ممکن است هدف حملات مختلف هکری قرار بگیرد . برای امنیت بیشتر توصیه می شود نام کاربری admin را تغییر دهید و از آن برای انتشار مطالب استفاده نکنید و در عوض یک نام کاربری با سطح دسترسی Author ساخته و از آن برای انتشار مطالب در سایت بهره ببرید .
برای تغییر نام کاربری باید وارد phpmyadmin شده و در جدول wp_users و در ردیف نام کاربری مورد نظر گزینهedit را انتخاب کنید.

حذف معرفی ورژن وردپرس
بصورت پیشفرض وردپرس ورژن خود را در متاتگ های سایت به نمایش می گذارد:

<meta name="generator" content="WordPress 3.9.1">

این اطلاعات در صورت قدیمی بودن نسخه وردپرس سایت شما و در صورتی که آن نسخه دچار مشکل امنیتی باشد می تواند مورد استفاده هکر ها قرار گیرد.
برای حذف این متا تگ کافیست در انتهای فایل functions.php پوسته وردپرس خود کد زیر را قرار دهید :

remove_action('wp_head', 'wp_generator');

توصیه های امنیتی
هیچ گاه پسورد سایت خود را به کسانی که نمی شناسید ندهید حتی اگر آنها متخصص در حل مشکلات وردپرس و هاست و یا قالب وردپرس باشند .
هیچ گاه از پلاگین ها و قالب هایی که در سایت های متفرقه ارائه می شوند استفاده نکنید .
هیچ گاه بدون توجه بر روی لینک هایی که در قسمت نظرات برای شما ارسال می شود کلیک نکنید.
هیچ گاه سایت خود را بر روی هاست های نا امن قرار ندهید و قبل از تهیه هاست از معتبر برودن شرکت ارائه دهنده اطمینان حاصل کنید.
سعی کنید حتی الامکان از نصب پلاگین های غیر ضروری پرهیز کنید .
حتما سایت خود را بصورت دوره ای مورد ارزیابی امنیتی قرار دهید .
فایل های پشتیبانی که از فایل های مهم سایت خود مثل wp-config.php تهیه می نمائید را حتما با پسوند php ذخیره نمائید (یطور مثال wp-config-backup.php) و از گذاشتن پسوند هایی مانند back , txt, bk و … )بطور مثال ( wp-config.txt جدا پرهیز کنید چرا که به فایل قابل خواندن توسط هکرها تبدیل خواهند شد .

عنوان : آموزش امنیت وردپرس بدون نیاز به نصب پلاگین

0 نظر

پاسخ دهید

می خواهید به بحث بپیوندید ؟

دیدگاهتان را بنویسید