امنیت در سایتهای وردپرسی (مقاله شماره ۲)

امنیت در سایتهای وردپرسی (مقاله شماره 2), پیشرو وب, طراحی سایت در کرج, طراحی وب سایت در کرج, طراحی سایت

امنیت پوشه ی wp-admin:
در قسمت مدیریت سرور ، پوشه ی wp-admin را رمز گذاری کنید تا امنیت این بخش بخوبی تامین شود. زیرا در موارد بسیاری ، وردپرس سوراخهای امنیتی ای داشته که تنها با انجام این کار برطرف می گردد. هر چند در نسخه های جدیدتر وردپرس این موارد حل شده و تقویت می گردد اما هیچوقت امنیت این بخش را نادیده نگیرید.

مخفی کردن نسخه وردپرس:
فرض کنیم که مدیر سایت به هر دلیلی نمی خواهد وردپرس را بروز کند و از آخرین نسخه آن (که مشکلات امنیتی نسخه قبل حل شده) استفاده کند. پس باید نسخه وردپرس از دید هکر مخفی شود. برای این کار کد زیر را به انتهای فایل functions.php موجود در قالب سایت اضافه کنید.

function nm_remove_wp_version() {
return '';
}
add_filter('the_generator', 'nm_remove_wp_version');

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

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

در این باره بیشتر بخوانید…

جلوگیری از لیست شدن فایل ها:
اگر در حالت عادی آدرس برخی پوشه های وردپرس را مانند http://yoursite.com/wp-content/uploads اجرا کنیم ، لیست کلیه فایلها نمایش داده می شود. برای غیر فعال کردن این حالت ، کد زیر را به فایل htacces. موجود در پوشه اصلی سایت اضافه کنید.

Options -Indexes

امنیت سطح دسترسی فایل ها (permission):
سطح دسترسی فایلهای موجود در پوشه های سایت ، بطور عادی روی عدد ۶۴۴ است و این بدان معنی است که ادمین سرور سایت می تواند فایل ها را هم بخواند و هم در آن بنویسد و نیز کاربران سایت می توانند آنرا فقط ببیند. اما اگر به هر طریقی کد مخربی در سایت نفوذ کرده باشد ، می تواند مانند ادمین سرور سایت ، محتویات فایل ها را تغییر دهد. برای جلوگیری از این امر ، سطح دسترسی فایلهای زیر را به ۴۴۴ تغییر دهید:

فایلهای بخش اصلی سایت:

htaccess.
index.php
wp-config.php

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

نکته: درصورتی که قالب شما اُرجینال بوده و نیاز به آپدیت داشته باشد ، برای آپدیت کردن آن ، باید سطح دسترسی پوشه قالب به ۷۵۵ بازگردانده شود تا فایلهای جدید بتواند در آن جایگزین شوند.

امنیت فایل wp-config.php:
۱) کدهای زیر را به فایل htaccess. اضافه کنید تا دسترسی فایل wp-config.php برای هر کسی به غیر از خود وردپرس بسته شود.

order allow,deny
deny from all

۲) فایل wp-config-sample.php را حتما حذف کنید.
۳) در خط زیر از این فایل ، مقدار _wp را به مقداری دیگر تغییر دهید (برای مثال: _xxx). این مقدار ، پیشوند (prefix) نام جدول های دیتابیس شماست که بطور پیشفرض روی _wp قرار دارد و همگان از آن مطلع هستند.

$table_prefix = 'wp_';

۴) با اضافه کردن کد زیر به این فایل ، امکان ویرایش کردن فایلها از طریق بخش Appearance -> Editor را مسدود کنید ، تا اگر فردی دیگر به بخش مدیریت وردپرس شما دسترسی پیدا کرد ، امکان این را نداشته باشد تا کدهای خود را در فایل های حیاتی سایت وارد کند و یا آن ها را تخریب کند.

define('DISALLOW_FILE_EDIT', true);

۵) به کدهای زیر دقت کنید:

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');

با استفاده از این لینک کدهای جدید را جایگزین کنید
در این باره بیشتر بخوانید…

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

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

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

تنظیمات robots.txt:
در حالت عادی این فایل در پوشه اصلی سایت وجود ندارد و این بدان معنی است که ربات موتورهای جستجو می توانند کلیه پوشه های سایت شما را ایندکس کنند. برای جلوگیری از این مسئله ، در ابتدا این فایل را در پوشه اصلی سایت ایجاد کرده و کدهای زیر را در آن وارد کنید. این کدها به ربات موتورهای جستجو می گویند که برخی پوشه و فایل هایی که در این کدها ذکر شده را ایندکس نکنند.

User-agent: *
Disallow: /cgi-bin/
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /wp-content/cache/
Disallow: /wp-content/themes/
Disallow: /trackback/
Disallow: /comments/
Disallow: */trackback/
Disallow: */comments/
Disallow: wp-login.php
Disallow: wp-signup.php

در این باره بیشتر بخوانید…

نکته: تنها موتورهای جستجوی معتبر مانند Yahoo, Bing, Google و از این دسته هستند که به کدهای شما در فایل robots.txt احترام می گذارند. اما اگر کسی ربات خزشگر شخصی خود را داشته باشد ، از این کدها سوء استفاده کرده تا به مسیرهایی که شما در این فایل مشخص کرده اید ، مخصوصا دسترسی پیدا کند. پس این فایل تنها برای موتورهای جستجوی حرفه ای قابل اطمینان است. البته انتخاب با خود شماست که این بخش را انجام دهید یا نادیده بگیرید.

امنیت در لاگین کردن:
برای لاگین کردن به بخش اصلی مدیریت سایت و یا سرور ، تا جایی که امکان دارد تنها از یک کامپیوتر که امنیت آن از هر لحاظ (عدم وجود تروجان ها ، بدافزار ها ، کی لاگرها و…) مشخص شده استفاده کنید. ممکن است برای مثال از کامپیوتر برادر یا خواهر خود استفاده کنید که به نظرتان کاملا مورد اعتماد است ، اما آیا امنیت کامپیوتر ایشان هم مورد اعتماد است؟ ممکن است کامپیوتر فردی دیگر که شما به آن اعتماد دارید ، مورد حمله ی بدافزاری قرار گرفته باشد که خود آن فرد هم از آن خبر نداشته باشد و شما هم قربانی این مسئله خواهید شد.

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

Better WP Security
All In One WP Security & Firewall
Cloud Flare
Sucuri

تغییر آدرس صفحات لاگین:
جهت برقراری امنیت بالاتر ، می توانید آدرس صفحات مربوط به لاگین وردپرس را مانند http://yoursite.com/wp-admin تغییر دهید. در این رابطه می توانید از پلاگین های موجود استفاده کنید. برای مثال: Custom Login Url

اگر این پلاگین را نصب کردید ، برای تنظیم آدرس های جدید صفحات لاگین ، به قسمت Settings -> Permalinks رفته و از بخش Authentication Permalinks آدرس های جدید را وارد و ثبت کنید.

همچنین می توانید بدون نصب هیچ پلاگینی ، کدهای زیر را به فایل htaccess. اضافه کنید. برای درج آدرس های خود ، در کدهای زیر ، برای مثال به جای مقدار login^ مقدار مورد نظر خود را وارد کنید. این مقدار که نتیجه آن http://yoursite.com/login خواهد بود ، جایگزین آدرس http://yoursite.com/wp-login.php می شود. همینطور logout , ^register , ^lostpassword^

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^login /wp-login.php [QSA,L]
RewriteRule ^lostpassword /wp-login.php?action=lostpassword [QSA,L]
RewriteRule ^register /wp-login.php?action=register [QSA,L]
RewriteRule ^logout /wp-login.php?action=logout [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Captcha:
کپچا (کد امنیتی) ، این امکان را ایجاد می کند تا جلوی رباتهایی که بطور مسلسل وار سعی میکنند تا در سایت بطور بیهود لاگین کنند را بگیرد. زیرا که اگر جلوی این کار گرفته نشود ، می تواند سرور شما را دچار اختلال کرده و سایت را داون کند. برای اینکار می توانید پلاگین مربوطه را نصب کرده و به بخش لاگین اضافه کنید. البته توصیه می کنیم که از کپتچای گوگل استفاده کنید. برای اینکار ابتدا باید با حساب کاربری خود وارد گوگل شده و به این بخش بروید ، یک reCaptcha بسازید و کدهای private code و public code را در بخش مربوطه پلاگین وارد نمایید.

پلاگین را از اینجا دریافت کنید…

منبع: پیشرو وب