سلام عزیزان؛
در جلسه ی قبلی مدرسه، یاد گرفتیم که چطوری فایل های قالب رو قفل کنیم تا ایمنی لازم برقرار بشه. اما امروز میخوایم راجع به مبحث دیگه ای در وردپرس صحبت کنیم که به یک صفحه ی خالی و در نگاه اول برای هر کاربری بی ارزش برمیگرده.
مطمئنا بارها به فایل htaccess. برخورد کردید و یا شایدم مشکلاتی براتون ایجاد کرده. فایل htaccess. یک فایل معمولا خالی هستش مه ارتباط مستقیمی با پیوندهای یکتا برقرار میکنه ولی گاهی در موارد خاصی داخلش کدهایی افزوده میشه.مثلا بعضی از این کدها مربوط به امنیت هم میشه که امروز قراره در موردش ۵ دقیقه ای با هم صحبت کنیم.
حفاظت از وردپرس با htaccess.
فایل htaccess. در عین سادگی یک فایل بسیار قدرتمندی است که عملکرد سرور رو تحت نظارت قرار میده و اثر گذاری اون بالاست و همچنین ارتباط مستقیمی با پیوندهای یکتا داره.این موضوع در بحث امنیت وردپرس بسیار اهمیت داره!
وجود قایل htaccess. و مواظبت از اون به منظور تقویت وبسایت وردپرسی بسیار مهمه. پس دقت کنید هر نوشته ای که داخل این فایل می نویسید به حالت تگ با Begin wordpress# شروع و با End wordpress خاتمه یابد.
مطمئنا با کلیک کردن بر روی تنظیمات، این فایل رو نمی بینید زیرا همیشه به حالت پنهان هستش. به عبارت دیگه، فایل htaccess. به صورت یک فایل غیر قابل رویت است.
فایل wp-config.php یکی از مهمترین فایل هاست که شامل اتصالات به پایگاه داده و تنظیمات آن، جداول پیشوندی، کلیدهای امنیتی و دیگر اطلاعات حساس است.برای حفاظت از این فایل کد زیر رو درون htaccess. وارد کنید:
<files wp-config.php> order allow,deny deny from all </files>
البته میتونید فایل wp-config.php رو از محل نصب جا به جا کنید، با این حال بحث امنیت دیتابیس هم مطرحه.
محدود کردن دسترسی به ناحیه مدیریتی وردپرس با استفاده از آدرس آی پی از قطعه کد زیر امکان پذیره.بعلاوه شما احتیاج به ایجاد یک فایل htaccess. جداگانه دارید که از اون رو میتونید در شاخه ی wp-admin ذخیره کنید.دقت کنید که برای دسترسی به پنل مدیریتی با یک شناسه ی آی پی دیگه احتیاج به تغییر فایل htaccess. هستش.
order deny,allow allow from 192.168.5.1 deny from all
افزودن شناسه ی آی پی میتونه به راحتی انجام بشه و هر چند تا که بخواین رو پوشش بده. برای مثال کد زیر رو ببینید:
order deny,allow allow from 192.168.5.1 allow from 123.456.7.8 deny from all
فایل wp-login.php در ریشه ی وردپرس و در بخش نصب پیدا میشه که میتونه شناسه های آی پی مخصوصی رو محدود کنه! صفحه ی wp-login در نهایت برای هر کاربری که در مسیر wp-admin قرار گرفته باشه باز میشه،بنابراین اگر هر کس غیر از افراد قابل قبول باشند امکان باز شدن آن حتی با داشتن نام کاربری و رمز عبور امکان پذیر نیست!
برای ایجاد چنین سدی در wp-login.php کد زیر رو وارد نمایید:
<Files wp-login.php> order deny,allow Deny from all # allow access from my IP address allow from 192.168.5.1 </Files>
اگه متوجه شدید که فردی تلاش میکنه تا به ناحیه ی مدیریتی وارد بشه با قطعه کد زیر به راحتی میتونین اون رو سرکوب کنید:
order allow,deny deny from 456.123.8.9 allow from all
شاخه ی wp-includes شامل تعداد زیادی فایل های مهم هست که برای اجرای وردپرس استفاده میشن.این پوشه احتیاجی به دیده شدن توسط افراد نداره. برای حفاظت از آن کد زیر رو داخل htaccess. جدیدی وارد کنید:
# Block the include-only files <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule>
برای جلوگیری از جستجوی افراد برای این محتواها کد زیر رو نیز در فایل htaccess. وارد کنید:
Options All -Indexes
حال برای حفاظت از خود فایل htaccess. که شامل این همه کد مهم و امنیتی شده کد زیر رو داخلش به کار ببرید:
<Files .htaccess> order allow,deny deny from all </Files>
پوشه ی wp-content نیز توسط فایل htaccess. قابل حفاظته! برای این کار درباره فایل htaccess. جداگانه ای ایجاد کنید و در پوشه ی wp-content بارگذاری کنید.سپس کد زیر رو درون آن اضافه کنید.
order deny,allow deny from all <files ~ ".(xml|css|jpe?g|png|gif|js)$"> allow from all
همونطور که ملاحظه می کنید تکنیک بالا هم برای حفاظت از wp-content به کار میره! اما به XML ، CSS،Java script و تصاویر پرداخته نمیشه!
دقت کنید این کدها طوری نوشته شدند که به هیچ وجه به کدهای پی اچ پی موجود در قالب و افزونه ها ضرری وارد نمیکنند.
گاهی اوقات کاربران عزیز احساس می کنند فایل htaccess. بی ارزشه و وجودش هیچ سودی نداره اما دقیقا برعکس اگه این فایل حذف بشه باعث خرابی های زیادی میشه و حتی ممکنه خیلی از افزونه های شما نصب نشه. پس در حفظ آن کوشا باشید و اگه زمانی این فایل حذف شد نگران نباشید چون نحوه ی ساختش بسیار ساده است!
فقط دوستای عزیزم یادتون باشه قبل از انجام کارهایی که گفته شد حتما از سایت نسخه ی پشتیبان تهیه کنید.
موفق باشید
mahjoub.amir794 10 سال عضو همیار وردپرس
با سلام
علی رغم کپی (صحیح) کد حفاظت از wp-includes در فایل htaccess. اما کماکان wp-includes قابل دسترس و با وارد کردن آدرس http://www.sitename.com/wp-includes قابل مشاهده است . جالب اینکه کپی دیگر کدها برای دیگر موارد (مثلا فایل wp-config.php) کاملا صحیح (آنطور که باید باشد!) کار میکند . لطفا راهنمایی بفرمایید که ایراد از کجاست ؟ و چگونه قابل حل و درست شدن است؟
با سپاس
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
این الان کاملا حفاظت شده! دیده نمیشه
مهم اینه که از دید کاربر مخفی بمونه نه شما!
mahjoub.amir794 10 سال عضو همیار وردپرس
با سلام و تشکر از لطف و توجه شما
بله حق با شماست . اما منظور من هم دقیقا مخفی نشدن از دید کاربران است!
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
یعنی میخواهید از دید کاربر مخفی نباشه ؟ کاربر یعنی افرادی که عضو سایت هستند منظورتون هست؟
خب پس برای چی باید از این تنظیمات استفاده کنید؟
mahjoub.amir794 10 سال عضو همیار وردپرس
خانم کوهستانی سلام
از صبر و حوصله ایی که به خرج میدهید سپاسگذارم .
عجیبه که بعد از ۲ دیالوگ! انگار کاملا مسئله داره یه چیز دیگه میشه! البته من به شما حق میدم منظور منو متوجه نشید . به دو دلیل ۱-اینکه احتمالا من مشکل رو خوب توضیح ندادم ۲- اینکه مشکل به اندازه ی کافی عجیب هست . فکر میکنم یکبار دیگه سوال رو بخونیم بهتر باشه!
شما بهتر از من میدونید که قاعدتا پس از قرار دادن کد امنیتی wp-includes در htaccess. ،، هر کسی (من ، شما ، کاربر!)با وارد کردن آدرس صفحه ی این فایل (در مرورگر مثل :www.sitename.com/wp-includes) باید با پیغام خطایی مواجه بشه با این مضمون که دسترسی به این صفحه ممکن نیست (خطای ۴۰۳ اگر درست خاطرم مونده باشه!)
اما مشکل من اینه که این اتفاق نمیافته و انگار که اصلا کدی در htaccess. وارد نکرده باشم .
حالا چرا؟ کجای کار اشتباهه؟ من نمیدونم . امیدوارم شما راهنمایی بفرمایید.
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
عذر میخوام اگه متوجه منظور شما نشدم، سوالات متفاوت هست یکم دچار مشکل میشم
چیزی که میگید رو باهاش برخورد نکردم اما یه پیشنهاد! فایل htaccess. رو پاک کنید و دوباره خودتون بسازید و سپس این کدها رو وارد کنید. البته حواستون باشه که کدهای دیگه ای مربوط به بخش های دیگه داخلش نباشه
hqarts.tut423 10 سال عضو همیار وردپرس
سلام
من تمام این کارا رو انجام دادم و کار میکنه ولی یه مشکل دارم.
لطفا راه حل بدید.
این کدها باعث میشه که فونت آیکون قالبم و بعضی از افزونه ها از بین بره و فقط مربع نشون بده !!!
وقتی که htaccess توی wp-admin و wp-content و wp-include رو پاک میکنم دوباره رفرش میکنم درست میشه!!!
حالا آیا کدی هست که در کنار کد های بالا استفاده کنم تا این اتفاق نیوفته ؟
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
اینکودینگ فایلی که ایجاد میکنید باید utf-8 باشه
hqarts.tut423 10 سال عضو همیار وردپرس
سلام
ممنون که جواب دادین ولی با utf-8 ساختمشونو جواب نداد!؟!
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
تنها مشکلی که میتونه داشته باشه همینه! در غیر اینصورت موردی نیست
مراحل رو دوباره چک کنید
دیزاینر
سلام
منی که از لوکال هاست استفاده میکنم، آدرس آی پی قسمت ادمین رو که تغییر دادم، چطوری در مرورگر وارد کنم که برم توی ادمین؟
چون هر مدلی که وارد می کنم این پیام رو میده:
Object not found!
The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.
If you think this is a server error, please contact the webmaster.
Bahar 11 سال عضو همیار وردپرس
سلام
ار کدوم بخش تغییر دادید ؟ به چی تغییر دادید ؟
tapesh
سلام آیا میشود htaccess رو طوری تنظیم کرد که اجازه بکاپ گرفتن فایلهای مهم مثل wp-config با هر افزونه ای رو نده.
Bahar 11 سال عضو همیار وردپرس
سلام
نه نمیشه
30NA
سلام بهتر بود تمام کارهای گفته شده را در یک فایل آماده HTACCESS برای دانلود بزارید ممنون
رضا
سلام
من داخل روت اصلی هاست htaccess را میسازم و کد های بالا را دقیقا اونجا کپی میکنم
اما این کد ها اجرا نمیشوند
وب سرور لایت اسپید هست
رضا
سلام
من فایل htaccess. را میسازم و کد ها کپی میکنم دقیق اما اجرا نمیشن.
میشه راهنمایی کنید
Bahar 11 سال عضو همیار وردپرس
سلام
مراحل رو بهتر توضیح بدید تا بتونم مشکل کار شما رو بفهمم
رضا
سلام مجدد وب سرور من لایت اسپید است و سی پنل هست.فایل htaccess. را میسازم در قسمت public-html و بعد همین کدهایی که شما گفتید در قسمت آموزش بالا را داخل .htaccess وارد میکنم اما اجرا نمیشوند. اینم عکس از نوشته ها http://8pic.ir/images/dbtjvimatdfivnx8bxtp.jpg
Bahar 11 سال عضو همیار وردپرس
سلام
دوست عزیز شما اول اطمینان حاصل کنید که HTACCESS وجود نداره بعد بسازید!
رضا
البته با پشتیبانی سرور هم تماس گرفتم و گفتن پشتیبانی میکنه
mahdi
برای جلو گیری از دسترسی فایل کانفیگ میشه پرمیشن رو به جای قطعه کد تغییر داد؟ما که از هر دوش استفاده کردیم
ali
مرسی واقعا عالی بود
محمدرضا
سلام.
خیلی ممنون از مطالب مفیدتون.
من متوجه نشدم که بالاخره فایل .htaccess رو باید خودمون درست کنیم و روی هاستمون لود کنیم یا اونجا وجود داره؟
Bahar 11 سال عضو همیار وردپرس
سلام
معمولا وجود داره ولی اگه نداشت میتونید ایجادش کنید