.htaccess فایلی است که برای کنترل در سرور های آپاچی به کار میره و با اون میشه کار های زیادی انجام داد. در این مقاله سعی میکنیم تا 10 هک امنیتی و کاربردی رو برای وردپرس از طریق فایل .htaccess به شما آموزش بدیم.
اخطار : همیشه قبل از انجام تغییرات بر روی .htaccess یک نسخه ی پشتیبان از آن تهیه کنید.
1_ریدایرکت کردن خوراک وردپرس به خوراک شما بر روی خوراک سوز (فیدبرنر):
کیه که از فید برنر استفاده نکنه؟ مطمئنن فیدبرنر امکان بسیار خوبیه که به شما امکان این رو میده که بینید چه کسانی آبونه ی خوراک سایت یا وبلاگتون شدن. این وسط مشکل اینجاست که برای تغییر نشانی خوراک شما باید فایل های پوسته رو ویرایش کنید . خوشبختانه یک هک ساده برای این کار با استفاده از .htaccess وجود داره که کار شما رو ساده تر میکنه!
کد زیر رو در انتهای فایل .htaccess موجود در شاخه ی اصلی قرار بدید. یادتون نره که خط ششم کد رو به نشانی فیدبرنر خودتون تغییر بدید :
برای دیدن کد اینجا را کلیک کنید.
2_حذف /category/ از نشانی های وردپرس :
به طور پیش فرض نشانی هایی که بر اساس دسته ها ساخته میشوند به صورت زیر هستند :
http://www.naghies.ir/category/wordpress
همون طور که میبینید اون کلمه ی category کاملاً بی استفاده است و بهتره که حذف بشه.
ابتدا یک پشتیبان از فایل .htaccess بگیرید . سپس کد زیر رو اضافه کنید :
برای دیدن کد اینجا را کلیک کنید.
وقتی فایل رو ذخیره کردید ، نشانی دسته بندی هاتون به شکل زیر خواهد بود :
http://www.naghies.ir/wordpress
3_استفاده از کش جستجوگر :
یکی از راه های سریع تر لود شدن سایت شما اینه که جستجوگر (browser) کاربر رو مجبور کنید که یک سری از فایل ها رو کش (یه جورایی ذخیره) کنه. این کد ها مستقیماً زمان بار شدن سایت شما رو کم نمیکنه ، در واقع به جستجوگر دستور میده یک سری فایل ، مثل عکس و … رو در بار اول ذخیره کنه و در بازدیدهای بعدی ، دیگه مستقیماً از سرور لود نمیشه و از کش خود جستجوگر استفاده میشه. این علاوه بر بار شدن سریع تر سایت باعث میشه که فشار کمتری هم به سرور بیاد. پس کد زیر رو هم به فایلتون اضافه کنید :
برای دیدن کد اینجا را کلیک کنید.
4_فشرده سازی اطلاعات آماری :
میدونید که میشه اطلاعات رو فشرده شده برای کاربر فرستاد؟ که اون اطلاعات فشرده به طور خودکار بازگشایی میشه مورد استفاده قرار میگیره؟
این کار باعث صرفه جویی در استفاده از پهنای باند شما میشه و وزن صفحات شما رو کم میکنه.
کد زیر این کار رو انجام میده :
برای دیدن کد اینجا را کلیک کنید.
5_ریدایرکت کردن پیوندهای یکتا بر اساس روز و نام نوشته به فقط نام نوشته :
کاری که انجام میدید اینه که وارد بخش پیوند های یکتا میشید و مقدار /%postname%/ رو وارد میکنید ، و ذخیره میکنید . حالا نشانی نوشته های شما شبیه به زیر خواهد بود :
http://www.naghies.ir/name-of-the-post
نکته ی مهم این هک اینجاست که ممکنه کسانی با توجه به نشانی های قبلی به نوشته های شما پیوند داده باشند و با توجه به عوض کردن پیوند های یکتا اون پیوند ها هم از بین بره . برای جلوگیری از این کار کدی هست که شما در قایل .htaccsess تون قرار میدید و همه پیوند های یکتای گذشته رو ریدایرکت میکنه به پیوند های با ساختار جدید :
برای دیدن کد اینجا را کلیک کنید.
6_جلوگیری از فرستادن دیدگاه بدون داشتن ریفرر :
مطمئناً Akismet افزونه ی خوبی برای جلوگیری از اسپم محسوب میشه. اما با استفاده از یک هک میشه جلوی فرستادن خیلی از اسپم ها رو گرفت . دقت کنید که کد خط چهارم رو به نشانی وبلاگ خودتون تغییر بدید :
برای دیدن کد اینجا را کلیک کنید.
7_ریدایرکت کردن بازدید کنندگان به برگه ی تعمیر :
وقتی دارید وبلاگتون رو به روز رسانی میکنید یا تغییراتی رو میدید بهتره که بازدید کنندگان جریان این تغییرات رو در وبلاگ شما نبینند. برای این کار خیلی راحت یک “برگه ی تعمیر” (همون “در حال به روز رسانی” یا “در حال اعمال تغییرات” هستیم!) بسازید و با یک کد کوچیک کاربر ها رو که به هر نشانی ای مراجعه کردن به اون برگه راهنمایی کنید.
در کد موجود در خط 2 و 4 نام maintenance.html رو با نام برگه ی خودتون عوض کنید و در خط 3 مقدار آی پی خودتون رو وارد کنید :
برای دیدن کد اینجا را کلیک کنید.
8_وردپرس خود را از hotlinking محافظت کنید :
دیده شده که جدیداً کپی پیست زیاد شده و هر کسی میاد و حاصل زحمات شما رو کپی پیست میکنه و میزاره توی وبلاگ خودش! (نامردا!) و نه تنها مطالب شما رو دزدی میکنند بلکه پهنای باند شما رو هم (با کش رفتن عکس ها و قرار دادن آدرس عکس های شما در سایت خودشون) میدزدند! با این هک خیلی راحت میشه از دزدیده شدن پهنای باندتون که با hotlinking انجام میشه مبارزه کنید و یک عکس هشدار آمیز رو به جای عکس مورد نظر نشون بدید :
برای دیدن کد اینجا را کلیک کنید.
9_تنها به آی پی خودتون اجازه ی دسترسی به پوشه ی wp-admin را بدهید :
البته اینکار فقط برای کسانی است که آی پی استاتیک دارند. مقدار آی پی استاتیک خودتون رو در خط هشتم وارد کنید (دقت کنید که برای این کار باید یک فایل .htaccess ساخته و آن را در پوشه ی wp-admin قرار دهید) :
برای دیدن کد اینجا را کلیک کنید.
10_بن کردن اسپمر ها با .htaccess :
شما میدونید منم میدونم که این اسپم ها خیلی اذیت میکنه! شما خیلی راحت با .htaccess میتونید یک لیست سیاه درست کنید و اون آی پی ها رو بن کنید :
برای دیدن کد اینجا را کلیک کنید.
برای اضافه کردن بن جدید یک خط جدید به فرم deny from xxx.xx.xxx.xxx زیر خط قبلی اضافه کنید.
تمام!
سلام
در پایان یادت رفت نکته ای رو ذکر کنی:
فایل htaccess. در هیچ حالتی نباید قابل Read گرفتن باشد!عواقب دارد!مراقب Spider ها باشید.
مقاله ی کاملا مفیدی بود.خیلی مفید و عالی.
موید باشی بهرنگ جان
درسته ، این نکته ی مهمیه. ممنون استاد :وینک!
salam,man matlab ke mifresam ,masalan ba topic “magas”,khob?
matlabam ke index mish dar google
be jayeh inke be mabhasam link beshe,link mishe be homepage weblogam,mishe begid chikar mishe kard?
mamnon misham
جالب بود و خوب
خسته نباشی……
دوست عزیز ممنونم که توضیحاتی مسئولانه انجام دادید
جای تقدیر فراوانی دارد زیرا نکات بسیار مهمی بود
سپاس شما
اما در مورد کد ۸ یعنی :
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]چگونه باید عکسی را که دل بخواه خودمان است نشان دهیم ؟ یعنی با گذاشتن این کد هر کس عکسی از هاست ما بردارد عکسی نشان داده خواهد شد و آن این است که مثلا این عکس مربوط به سایت : تاریخ ما : است ؟اینجا منتظر توضیح کوچکی از شما خواهم بود.
باز هم سپاس
خب داخل خود کد توضیح داده شده ،
RewriteEngine On
#Replace ?mysite\.com/ with your blog url
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Replace /images/nohotlink.jpg with your “don’t hotlink” image url
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]
خط اول که هیچ!
خط دوم توضیحاته ، میگه که ?mysite\.com/ رو با آدرس سایتتون عوض کنید.
خط سوم و چهارم هم هیچی!
خط پنجم هم توضیحات راجع به خطه ششمه که میگه در آدرس /images/nohotlink.jpg که طبیعتاً در روت سایتتون هست ، عکسی رو با نام nohotlink.jpg قرار بدید که بیانگر ناراحتی شما از هات لینک شدن سایتتون باشه! مثلاً توی اون عکس میگید هات لینک نکنید ، یا تبلیغ سایت خودتونو میکنید! بعد هر کسی بیاد و عکس های سایت شما رو با کپی پیست بزاره تو سایت خودش به جای اینکه عکس های کپی شده نمایش پیدا کنه ، عکس آزار دهنده ای که شما انتخاب کردید نمایش پیدا میکنه.
اما بازم سوال
قبلش بگم ممنون که پاسخ دادید
اگر من عکسی از سایت های خارجی بردارم، و مردم بیان از سایت من عکس بردارن این پییام هات لینک بهشون نمیاد درسته ؟
نه دیگه! نمیاد…نکته ی این کار اینه اون عکس ها باید روی هاست شما باشه…اگه روی هاست یکی دیگه باشه که اصلاً ربطی پیدا نمیکنه…
دم شما با این مقالات عالی گرم
بنابراین اگه از هاست دیگه عکس برداشتم باید برم هکش کنم و واترمارک رو اونجا بزارم
RewriteRule ^category/(.+)$ http://www.yourblog.com/$1 [R=301,L]
در مورد این کد : من category رو عوض کردم و تگ ها رو
حالا دوباره باید همین رو وارد کنم ؟
category : Subject
Tag : word
کد شماره سه را گذاشتم ارور ۵۰۰ داد
کل سایت خوابید راهش چیه ؟
آدرس خودتو جایگزین کردی؟ فقط آدرستو جایگزین میکنی ها…چیز دیگری رو دست نمیزنی…
FileETag MTime Size
ExpiresActive on
ExpiresDefault “access plus 1 year”
این کد شماره سه
این کجاس آدرس داره ؟
کد بعدی رو گذاشتم موردی نداشت
اصلا سایت منو ببینید چه قدر کند هستش
http://www.tarikhema.ir
این کد رو بزارم سریع تر بشه
دوباره تست کردم
باز سایت خوابید!
@انی, آقا شرمنده ، این وسط مسطا نمی دونم چرا این کد کامل نمایش داده نمیشه…من لینک کد رو دوباره گذاشتم…اونو یه تست بزن…
کم بودن سرعت اگثر اوقات به تعداد افزونه های نصب شده و سرعت خود سرور بستگی داره…شاید هم حجم تعدادی از تیبل ها ی دیتابیس خیلی بالاست ، پیشنهاد میکنم تعداد مطالبتون خیلی بالاست وضعیت پیوند های یکتا رو به پیش فرض برگردونید و یه تستی بکنید .
اقای مزیسیا
این پلاگین که وقتی پاسخی گفته میشه ایمیل می کنه چی هستش ؟
دنبالش بودم تو افزونه های وردپرس پیدا نکردم اما
یعنی وقتی پاسخی به من دادی با ایمیل خبر می کنه..
@انی, از افزونه های Moderation Notify Author و WordPress Thread Comment استفاده کنید.
این کدی که گذاشتید هم عمل نکرد
همون ارور ۵۰۰ رو داد
شرمنده من چیز دیگه ای به ذهنم نمیرسه.
تو دسته بندی شما
چرا مطلب رو متلب نوشتید؟ !
Matlab>> Matrix Lab
متلب…
آقای مزیسیا من یک قالب دارم یک کمی مورد داره، می خوام در مورد این با شما حرف بزنم. میشه یک ایمیل به بنده بدهید؟
ایراد خیلی کوچیکی هستش من حاظرم بابت اون پول هم بدم.وقتی میرم توی signle.php یا وقتی وارد یکی از مطالب سایت میشم.یکی از ستون های سایت میره پایین..
نمی دونم چی کنم. در حالی که ت ایندکس و آرشیو درست عمل می کنه.
عکس بیرون نمی زه و متن موردی هم نداره که … .
منتظرم
میتونید از فرم تماس استفاده کنید.
بسیار خوب و کاربردی بود
در مورد کش اگه با این روش کش انجام بشه
با تغییر کد و افزودن ؟ و کاراکترهای بعد از اون آیا باز هم از فایل کش شده قدیمی که در مثال ۱ سال قرار داده شده بود بارگزاری میشه یا نه؟
@بهروز, فکر نمیکنم…
به نام خدا
سلام
دوست عزیز ممنون از مطلب خوبتون.
در مورد “وردپرس خود را از hotlinking محافظت کنید” من کد زیر رو قرار دادم ولی هیچ تاثیری نداشت، میخواستم بدونم ایراد از کجاست ؟؟
RewriteEngine On
#Replace http://www.dibaketab.com with your blog url
RewriteCond %{HTTP_REFERER} !^http://(.+\.)http://www.dibaketab.com [NC]
RewriteCond %{HTTP_REFERER} !^$
#Replace /images/nohotlink.jpg with your “don’t hotlink” image url
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]
و یک سوال!
آیا عکس هایی که وردپرس از هات لینکشون جلوگیری میکنه حتما باید توی پوشه image ورپرس باشه ؟؟
با تشکر
خط سوم کد رو به شکل زیر استفاده کنید ، ببینید تاثیری داره :
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?dibaketab\.com/ [NC]
نه لزوماً ، من فکر میکنم که عکس تنها در هاست شما باشه کفایت میکنه.
سلام.
نکات خوبی بود. فقط درباره این کد بگم که یک چیز دیگه هم میتونید اضافه کنید.
۱٫
۲٫
order allow,deny
3.
deny from 200.49.176.139
4.
allow from all
5.
به جای
۱٫
۲٫
order allow,deny
3.
deny from 200.49.176.139
4.
allow from all
5.
مرسی
مطلب خوب و کاربردی بود.
site man dir bala miad che kar konam
http://parnaz.co.cc
خیلی بدرد بخور بود
سپاس
salam
chejori mishe dar in http://www.naghies.ir/name-of-the-post be jaye – ye karaktere dge endakht?
راستش رو بخواید من نمیدونم چطور میشه این مورد رو عوض کرد.
سلام
با تشکر از شما
ممنون میشم یکدونه از این فایل رو که کامل هست برامون قرار بدین تا اون دانلود کنیم
راستی دسترسیش باید چند باشه؟
با تشکر از مطلب مفیدتون
من وقتی میخوام فایل .htaccess ساخته شده خودم رو آپلود کنم میگه فایلی با این اسم در هاست وجود داره. با توجه به اینکه بازنشانی فایل میتونه اطلاعات قبلی رو از بین ببره میخوام ببینم که چطوری میتونم فایل .htaccess موجود تو هاستم رو ادیت و این کدها رو به ادامه ش اضافه کنم. هرچی فایلها رو زیر و رو کردم به فایلی به اسم .htaccess تو هاستم بر نخوردم! گویا پنهان میشه، لطفاً راهنمایی کنید
بعضی از هاست ها این فایل رو مخفی میکنند…باید در تنظیمات هاستتون این تنظیم رو انجام بدید یا اینکه در cpanel تنظیمات نمایش فایل ها رو بررسی کنید(متاسفانه من هاست های ویندوزی رو نمیدونم).
در صورتی که نمیدونید تنظیمات کجا هستند میتونید از پشتیبانی هاستتون بپرسید.
با سلام دوباره
من میخوام که علاوه بر آدرس عنوان بالایی سایت رو هم از اسم دسته خالی کنه. مثلاً الآن عنوان هست: درجیک > فیلم > پدر خوانده و من میخوام عنوان به صورت: درجیک > پدرخوانده دربیاد. برای این چکار کنم؟
اون به فایل هدرتون ربط داره نه با فایل htaccess در انجمن وردپرس فارسی بپرسید…دوستان جواب میدن.