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

برای حذف این شماره باید حداکثر دو فایل را ویرایش کنید. مورد اول در داخل فایل header.php است که باید به دنبال این خط از کد بگردید:
<meta name="generator" content="WordPress <?php bloginfo('version'); ?>" />
که باید این خط را به این شکل تغییر دهید :
<meta name="generator" content="WordPress" />
ولی در بعضی از قالب ها این شماره نسخه در دو جا نمایش داده می شود. برای حذف شماره نسخه در مکان دوم باید این کد را به فایل function.php موجود در داخل پوشه theme اضافه کنید:
<?php remove_action('wp_head', 'wp_generator'); ?>
از این طریق می توانید مطمئن باشید که شماره نسخه wordpress شما برای عموم قابل مشاهده نیست. احیانا اگر شماره نسخه وردپرس در قالب شما هم به نمایش در می آید ، می توانید با ویرایش آن بخش، شماره نسخه را حذف کنید.
مورد دیگری نیز پاک کردن فایل readme.html از روت است. متاسفانه اغلب کاربران آن فایل را در همان بخش باقی می گذارند در حالی که اصلا هیچ احتیاجی به قرار دادن این فایل بر روی سرور نیست. شما می توانید آدرس این فایل رو در نوار آدرس تایپ کنید، اگر این فایل بر روی سرور موجود باشد، برای شما نمایش داده خواهد شد و شما شماره نسخه کاربر را خواهید دید . به عنوان مثال:
http://www.example.com/readme.html
به جای example نام سایت مورد نظر را قرار دهید. خواهید دید که بسیاری از کاربران ورد پرس این فایل را از روی سرور خود حذف نکرده اند !!
2- دایرکتوری هایی که صفحه index ندارند ، می توانند مشکل ساز شوند !
در حالت عادی برخی از پوشه های وردپرس حاوی فایل Index نیست و هر کس می تواند داخل آن پوشه ها را ببیند. یکی از این پوشه ها، پوشه plugin است. به این تصویر دقت کنید.

این تصویر دایرکتوری plugin یکی از دوستانیست که از ورد پرس استفاد می کند. به علت اینکه این صفحه حاوی فایل Index.html نیست ، هر کس میتواند محتوای آن را ببیند و از این طریق می تواند پلاگین هایی را که شما استفاده می کنید را دیده و نسخه آن را نیز ببیند. این یک ضعف امنیتی بزرگ است.
برای رفع این مشکل دو راه وجود دارد. راه حل ساده این است که یک فایل Index.html بسازید و داخل دایرکتوری پلاگین قرار دهید و شیوه دوم و اصولی تر این است که دستوری را به فایل htaccess. موجود در root اضافه کنید تا هر کس سعی کرد ، دایرکتوری هایی را که صفحه index ندارند را ببیند، به صفحه پیغام خطای 404 هدایت شود. برای این کار باید این خط را به آخر فایل htaccess. خود اضافه کنید
# Prevents directory listing
Options -Indexes
بعد از اضافه شدن این دستور دیگر کسی نمی تواند محتوای دایرکتوری هایی که ایندکس ندارند را ببیند. به عنوان مثال می توانید دایرکتوری پلاگین همین وبلاگ در آدرس http://www.4goosh.com/wp-content/plugins را چک کنید.
3- نسخه وردپرس را همیشه به روز نگه دارید
سعی کنید همیشه نسخه وردپرس ، پلاگین ها و قالب های خود را به روز نگه دارید. اگر از نسخه 2.6 استفاده می کنید، به روز کردن پلاگین ها برای شما به سادگی امکان پذیر خواهد بود و به روز رسانی خودکار وردپرس نیز از نسخه بعدی به وردپرس اضافه خواهد شد ولی در حال حاضر نیز می توانید با نصب wordpress automatic upgrade می توانید این قابلیت را در اختیار داشته باشید.
4- سطوح دسترسی (premissions) را به درستی تنظیم کنید
هیچ گاه و تحت هیچ شرایطی بر روی هاست های اشتراکی ، پرمیشن هیچ پوشه ای را بر روی 777 قرار ندهید چون افراد دیگری که بر روی همان هاست هستند می توانند فایل هایی را به آن پوشه آپلود و اجرا کنند. برای پوشه ها در نهایت از می توانید از پرمیشن 755 استفاده کنید و برای فایل ها نیز از پرمیشن 644 استفاده کنید.
5- دسترسی به پوشه wp-admin را محدود کنید
اگر دسترسی ها را به این پوشه محدود کنید ، به میزان زیادی امنیت سیستم خود را افزایش داده اید. این پوشه را به دو شکل می توان محدود کرد. شیوه اول محدود کردن دسترسی به این پوشه با استفاده از فایل htaccess. و آدرس IP است. این شیوه فقط زمانی کاربرد دارد که شما از IP Static استفاده می کنید. بیشتر کاربران ایرانی از ip های داینامیک استفاده می کنند و این شیوه برای آنها مناسب نیست ولی اگر احیانا کسانی باشند که از آی پی استاتیک استفاده می کنند، کافیست که داخل پوشه wp-admin یک فایل htaccess. بسازند و این تکه کد را داخل آن قرار دهند:
order deny,allow
deny from all
# allow my home IP address
allow from XX.XX.XXX.XXX
# allow my work IP address
allow from XX.XX.XXX.XXX
به جای X ها باید آدرس آی پی خود را قرار دهند. می توانید به تعداد دلخواه به آدرس آی پی اضافه کنید و تنها همین آدرس ها می توانند به آن پوشه دسترسی داشته باشند و باقی افرادی که سعی داشته باشند وارد دایرکتوری wp-admin شوند، به صفحه پیغام خطای 404 هدایت می شوند.
افرادی که از آدرس های IP داینامیک استفاده می کنند می توانند پوشه wp-admin را پسورد گذاری کنند. با استفاده از قابلیت موجود در داخل CPanel هاست خود می توانید این کار را به راحتی انجام دهید.
توجه: شخصا موفق نشدم که پوشه wp-admin را بر روی یکی از سرور هایی که از آن استفاده میکنم ، پسورد گذاری کنم. به نظر میرسد تحت شرایط خاص و در صورت فعال بودن rewrite rule های مربوط به پیوند های یکتا ( permalinks ) این قابلیت به درستی کار نمی کند و شما در هر حالت به صفحه 404 هدایت می شوید. این مورد را در فورم پشتیبانی وردپرس سوال کردم ام. در صورت به نتیجه رسیدن ، راه حل را در همین بخش قرار خواهم داد.
6- پسورد های خود را مطمئن و طولانی انتخاب کنید
یکی از دلایل اینکه سایت ها به راحتی هک می شوند استفاده از کلمات عبور ساده و قابل حدس است. برای جلوگیری از هک شدن همیشه سعی کنید که پسورد های طولانی که مخلوطی از حروف ، اعداد و نشانه هاست را انتخاب کنید. همچنین می توانید با نصب پلاگین هایی همچون Login Lock Down جلوی افرادی را که سعی دارند با امتحان پسورد های مختلف وارد بخش ادمین سایت شما شوند را بگیرید. این پلاگین آدرس های IP را ثبت می کند و اگر کاربری با یک آدرس آی پی تعداد دفعات خاصی ، پسورد را اشتباه وارد کند برای دقایق مشخصی دیگر به او اجازه وارد کردن کلمه عبور را نخواهد داد.
همچنین سعی کنید که username وارد شدن به بخش ادمین را که به شکل پیش فرض admin است را تعویض کنید. در حالت پیش فرض این یوزنیم admin است و نیمی از زحمت هکر برای وارد شدن به بخش ادمین را کم کرده است. حتما این کلمه را تغییر دهید.
[شیوه تغییر کلمه عبور admin را فراموش کرده بودم که بنویسم. ممنون از دوستان که در کامنت ها این نکته را یادآوری کردند]
برای تغییر کلمه عبور admin می توانید از phpmyadmin موجود بر روی هاست خود استفاده کنید ولی اگر تا به حال با این برنامه کار نکرده اید می توانید از پلاگین change admin username استفاده کنید. بعد از نصب این پلاگین و فعال کردنش ، به بخش کاربران مراجعت کنید، در این بخش گزینه change username به لینک های بالای همان بخش اضافه شده است. دقت کنید که بعد از تغییر کلمه عبور حتما باید یکبار logout کرده و دوباره login کنید.
7- جلوی ایندکس شدن احتمالی محتوای پوشه های wp رو بگیرید
موتور های جستجو می توانند محتوای پوشه های مختلف را جستجو کنند و بسیاری از حفره های موجود در سایت ها با استفاده از همین صفحات ایندکس شده در گوگل توسط هکر ها کشف می شوند. با اضافه کردن این یک خط به فایل robots.txt خود جلوی ایندکس شدن پوشه های wp را بگیرید
Disallow: /wp-
اگر در حال حاضر هیچ فایل robots.txt ای روی سرور خود ندارید، می توانید از این دستورات را در داخل یک فایل با نام robots و پسوند txt ذخیره کنید و بر روی root سرور خود قرار دهید
User-agent: *
# disallow all files in these WordPress directories
Disallow: /wp-content/
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-
# disallow all files in these directories
Disallow: /tag/
Disallow: /cgi-bin/
# disallow robots from parsing individual post feeds and trackbacks
Disallow: /feed/
Disallow: /trackback/
Disallow: */trackback*
# disallow any files that are stats related
Disallow: /stats*
Disallow: /about/legal-notice/
Disallow: /about/copyright-policy/
Disallow: /about/terms-and-conditions/
Disallow: /tag
Disallow: /docs*
Disallow: /manual*
Disallow: /category/uncategorized*
# disallow files ending with the following extensions
User-agent: Googlebot
Disallow: /*.php$
Disallow: /*.js$
Disallow: /*.inc$
Disallow: /*.css$
Disallow: /*.gz$
Disallow: /*.cgi$
Disallow: /*.wmv$
Disallow: /*.php*
Disallow: /*.gz$
Allow: /wp-content/uploads/
#disallow WayBack archiving site
User-agent: ia_archiver
Disallow: /
این فایل حتی سایت شما را برای موتور های جستجو نیز بهینه می کند و اجازه ایندکس شدن محتوای بدون استفاده سایت شما را به موتور های جستجو نمی دهد.
البته شیوه های دیگری نیز برای حفاظت بیشتر در دسترس است که احتیاج به کمی دانش فنی دارد. به عنوان مثال می توانید prefix تیبل های بانک اطلاعاتی وردپرس خود را تغییر دهید که البته این کار با نسبت پلاگین نیز امکان پذیر است. افرادی که با SQL injection قصد هک کردن سایت را داشته باشند اگر prefix دقیق را ندادند، کاری نمی توانند انجام دهند از این رو تغییر prefixدهد.
- شبکه های اجتماعی جدید با وردپرس و مووبل تایپ ساخته خواهند شد
- CSS Sprite چیست ؟
- معرفی jQuery
- آینده وبلاگ نویسی چگونه خواهد بود ؟
- آیا فایرفاکس با SpiderMonkey وب را متحول خواهد کرد ؟
- شروع کار با جی کوئری
آیا شما از این ارسال لذت بردید؟ چرا دیدگاه خود را در زیر نمی نویسید و گفتگو را ادامه دهید، یا مشترک خوراک من شوید و مقاله هایی مانند این را روزانه به صورت خودکار به خواننده خوراک خود انتقال دهید.
بازتاب ها & بازخوان ها
دیدگاه ها
دیدگاه خود را بنویسید
خط و پاراگراف به طور خودکار شکسته خواهند شد، آدرس ایمیل هیچگاه نمایش داده نخواهد شد، HTML مجاز: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
-
سیستم وردپرس از جمله سیستم هایی است که در حالت عادی از ثبات خوبی برخوردار است و نکات امنیتی همیشه در آن لحاظ می شود ولی به علت پر استفاده بودن این سیستم ، همیشه مورد توجه هکر هاست. مواردی در این مقاله ذکر می شود که با انجام آنها می توانید از وردپرس خود به شکل بهتری در مقابل هکر ها حفاظت کنید. در ادامه هر مورد را یک به یک بررسی می کنیم:
-
در مورد ، ترفند پنجم و پسورد گذاشتن روی پوشه ادمین ، کسی از بچه ها هست که این کار رو کرده باشه ؟
-
من انجام دادم ، چطور شده؟
-
شما از post slug هم استفاده می کنید. منظورم اینه که آدرس هاتون داخلش کلمات انگلیسی و فارسی هست. متاسفانه من خودم وقتی پوشه ادمین رو پسودر میذارم نمیتونم وارد بشم و ریدایرکت میشم روی صفحه 404 . نمیدونم این باگ از ورد پرسه یا از سی پنل هاست. یکی از این دو تا مشکل ایجاد میکنه
-
این چطور 7 ترفنده ، منتها url نوشته 10 ترفنده؟؟؟ :دی
-
اول 10 تا بود بعد من 3 تاش رو که احتیاج به مهارت بیشتر داشت رو اون زیر به شکل مجزا نوشتم. منتها حواسم به آدرس نبود و هنوز 10 اون تو بود. بعد تغییرش دادم. الان شما روش کلیک کنی ریدایرکت میشه روی آدرسی که توش عدد 7 هست
-
یک نکته خیلی کوچک و کم اهمیت در مطلب: نوشتی: «سیاری از کاربران ورد پرس این فایل را از روی سرور خود حفظ نکرده اند » در حالی که باید بگی از روی سرور خود حذف نکردهاند.
-
ممنون بابک جان. احتمالا دیشب گیج میزدم . به جای کلمه حذف نوشته بودم حفظ
-
خواهش میکنم ;)
-
ممنون امیر جان
-
من تو مقاله ننوشته بودم که چطور میشه یوزرنیم admin رو تغییر داد و کسی هم سوال نکرده بود. کوثر تو کامنت در خواست کرد من یه پلاگین تو همون بخش داخل پست معرفی کردم که با اون میشه به راحتی کلمه admin رو به یه کلمه دلخواه دیگه تغییر داد
-
بسی سپاسگزاریم
-
یوزر نیم ادمین با موفقیت تعویض شد :) باز هم ممنونم.
-
میشه یه آیدی از خودتون بهم بدید که آدرس وبلاگ رو برای رفع مشکل اون یکی پلاگین بفرستم براتون و از این طریق گاهی در ارتباط باشیم؟ ممنون میشم
-
جی تاک . amirabbas.abdolali

سلام دوست عزیز
بسیار مفید بود.دو سایت وردپرسی من این هفته هک شد و فکر می کنم از پرمیشن غلط فایلها و فولدرها بود.به هرحال خیلی مفید بود ممنونم
خیلی جالب بود . به نکات جالبی اشاره شده بود . ممنون
عالی بود امیرعباس…
البته اگر وقت کردی یوزرت رو عوض کن
@ امامی ، مهدی سالار
خواهش میکنم
@علیرضا
آقا این نوشته ادمین که بالای نوشته ها بود فقط display name بود که عوضش کردم. یوزر ادمین رو هم همون موقع تغییر دادم ولی هیچ کس سوال نکرد که چطوری میشه یوزر ادمین رو عوض کرد ؟!! من خودم از توی phpmyadmin عوضش کردم. کلا هر کس نمیدونم بگه اون بخش رو هم به مقاله اضافه کنم
سلام. ممنون. مطلب خیلی مفیدی بود. مخصوصا برای ما تازهکارها.
راستی این پلاگین فرندفید کامنت رو چطور فعال کردین؟ من وقتی نیکنیمم رو بهش میدم این پیغام رو میده:
Error: Unable to retrieve content from FriendFeed. The API may be down or there may be connectivity problems
!
روش تغییر دادن یوزر ادمین رو هم اگر بگین خیلی لطف کردید.
عالی بود
خسته نباشی
جالب بود؛ موفق باشید.
خیلی مفید بود
@کوثر
این پلاگین رو کجا نصب کردید. میشه لینک بدید من چک کنم. احتمال داره که روی سیستم شما دو تا فریم ورک جاوا اسکریپت با هم فعال شده باشه که این ها با هم تداخل پیدا کردن
یه پلاگین هم برای تغییر یوزر نیم admin معرفی کردم که میتونید از اون استفاده کنید.
سلام ممنون از مطلبتون. راهی برای جلوگیری از اضافه شدن iframe لعنتی به فایلها هست یا نه؟ یه جا گفته بودن با تغییر رمز هاست حل میشه اما بازم بعد از چند وقت میبینی به جای وبلاگ آدم میره به سایتای روسی و از اینجور چیزا.
من روی پوشه wp-admin سایت دوستم خیلی راحت رمز گذاشتم.
ممنون