|موتورهای جستجو وقتی میخوان سایت ها رو برای پیدا کردن اطلاعات ، فایل و یا هر چیز دیگه ای بگردن اول از همه در ریشه (root) سایت ها به دنبال فایلی به اسم robots.txt میگردن (مثلا http://www.site.com/robots.txt ). این فایل به روبوت میگه روبوت کدوم فایل یا دایرکتوریها رو نباید بگرده. به این سیستم محدود سازی در اصلاح The Robots Exclusion Standard میگن.



نکته : روبوت یا روبات یا spider یا robot یا bot که اینجا بهش اشاره می کنم اونی نیست که تو خبر علمی تلوزیون میبینید و دست و پا داره و ... این روبوت ها برنامه هایی هستن که هوشمندانه کار جستجو رو انجام میدن و موجودیت فیزیکی ندارن.



قالب (format) این فایل مخصوصه و قواعد خاص خودش رو داره. این فایل شامل رکوردهایی میشه که هر رکورد شامل دو فیلده : یه خط به اسم User-agent و یک یا چند خط Disallow. که قالبش اینجوریه:



<filed> “:” <value>



این فایل باید در حالت Unix line ender درست شده باشه(این حالت هیچ کاراکتر نامرئی و کنترلی ته هر خط و اینور و اونور فایل ایجاد نمیذاره ، بهتره اگر خواستید این فایل رو بسازید با یه برنامه ساده که فقط کارش ویرایش متن هستش مثل notepad این کارو کنید).





خط User-agent مشخص کننده روبوتی هستش که باید محدودیت ها رو زمان جستجو درنظر بگیره:







اگر روبوت خاصی رو برای ایجاد محدودیت در نظرنداشتیم و خواستیم همه روبوت ها رو در جستجوی سایت محدود کنیم بجای نوشتن اسم روبوت از “*” استفاده می کنیم ، یعنی:







نکته کنکوری : اگر اسم این روبوت ها رو نداشتید کافیه به فایل log سایتتون یه نگاهی بندازید و درخواست هایی که فایل robots.txt رو میخواستن چک کنید. بیشتر موتورهای جستجو اسم های کوتاه و تابلویی برای روبوت هاشون میذارن.





دومین قسمت رکورد شامل Disallow هستش. این خط ها شامل اسم فایل ها و/یا دایرکتوریهایی هستن که روبوت حق گشتن اونها رو نداره. برای مثال ، خط زیر به روبوت میگه که حق گشتن فایل email.htm رو نداره.







با این دستور میشه جستجوی دایرکتوری ها رو هم محدود کرد:









که خط بالا به روبوت جستجوگر میگه حق گشتن دایرکتوری cgi-bin رو نداره.

نکته: در این خطوط میتونید از wildcardها استفاده کنید. مثلا با نوشتن Dissallow : /b*b/ روبوت دایرکتوریهایی که حرف اول و آخرشون b هستش (مثلا bob ، barb ، bxxb) رو نمیگرده. در ضمن میتونید قسمتی از نام فایل و یا دایرکتوری رو بنویسید ، مثلا با نوشتن Disallow : /bob روبوت فایل و دایرکتوریهایی مثل bob.htm ، /bob/index.htm ، /bobdirectory رو نمیگرده.



اگر خط Disallow رو خالی بذارید ، روبوت فرض میکنه که حق گشتن تمامی فایل ها و دایرکتوریها رو داره. در ضمن هر خط Disallow رو باید برای هر روبوتی که میخواهید محدود کنید به کار ببرید. اگر فایل خالی robots.txt رو خالی بذارید یا اصلا نداشته باشید باعث میشه که روبوت محدودیت جستجو نداشته باشه و همه دایرکتوری و فایل ها رو بگرده.



فضاهای خالی و commentها:

هر خطی که در فایل robots.txt با حرف # شروع بشه یا دارای این حرف باشه باعث میشه روبوت به بقیه اون خط توجهی نکنه و اون متن حالت توضیحی پیدا کنه. مثلا:



# in file baraye mahdood kardane robot ha mibashad

Dissallow : bob #tozihat



نکته : بعضی از روبوت ها بخوبی نمی تونن توضیحات رو از دستورها جدا کنن و ممکنه برداشت های متفاوت و غلطی بکنن مثلا در مورد خط دوم ممکنه روبوت خیال کنه که نباید فایل ها و دایرکتوریهایی که شامل bob#tozihat هستن رو بگرده و در زمان جستجو فایلها و دایرکتوریهایی که شامل کلمه bob هستن رو بگرده.

فضاهای خالی در اول خطوط مجاز هستش ، ولی ضروری نیست. یعنی دو خط زیر هیچ فرقی برای روبوت فرقی ندارن:





Disallow : bob



توسعه استاندارد فایل های روبوت:

تو استاندارهای جدیدی که برای این فایل داره وضع میشه کلمات کلیدی و دستورات دیگه هم داره گذاشته میشه (مثل Allow) که این فایل رو مهمتر و کارآمد تر میکنه.



مثال ها:

دو خط زیر باعث میشن که تمام روبوت ها بدون محدودیت بتونن کل فایلها و دایرکتوریهای سایت رو بگردن :





Disallow :



دو خط زیر هم باعث میشن که روبوت ها نتونن فایلها و دایرکتوریها رو جستجو کنن :





Disallow : /



سه خط زیر باعث میشن که روبوت ها نتونن دایرکتوری های cgi-bin و images رو بگردن :





Disallow : /cgi-bin/

Disallow : /images/



دو خط زیر باعث میشه روبات Roverdog اجازه جستجوی فایلها و دایرکتوریها رو نداشته باشه:





Disallow : /



دو خط زیر باعث میشن که روبوت googlebot نتونه فایل (صفحه) cheese.htm رو بگرده:





Disallow : cheese.htm



نکته : بهترین مثالها رو میتونید از فایل های روبوت سایت های بزرگ و معروف مثل cnn ، yahoo ، msn و ... بدست بیارید.



نکته های کنکوری نفوذ:

اگرچه این فایل از دید افراد معمولی و صاحبان سایت ها برای در امان نگه داشتن اطلاعاتشون از دست افراد معمولی و هکرها خوبه ، ولی همینطور که فایل robots.txt باعث میشه روبات ها اجازه دسترسی به فایلها و دایرکتوری های خاص رو نداشته باشن ، باعث میشه تا روبوتها و spider های خاص (مخصوص هکرها) بیشتر از بقیه سایت همون دایرکتوری های محدود شده رو بگردن و همچنین مثلا اگر هکری بخواد یه سایت با آدرس:

http://www.victim.com



رو هک کنه ، قبل از هکر کاری و در مرحله footprinting یه نگاه کوچیکی هم به فایل robots.txt در آدرس :

http://www.victim.com/robots.txt



و فایلها و دایرکتوریهایی که محدود شدن رو بیشتر بگرده و متوجه اون چیزی که نباید بدونه بشه. یادمه یه سایت به همین سادگی هک شد ، یه نگاه به فایل robots.txt و دیدن این خط:







بعدش هم که ... ، خدا بده برکت

نه اکسپلویت و نه آسیب پذیری ، فقط یه آسیب پذیری بود اون هم تو مغز مسئول و ادمین سایت


http://root4.persianblog.com
User-agent: User-agent : googlebot User-agent: * Disallow: Disallow : email.htm Disallow : /cgi-bin/ Disallow : bob User-agent : * User-agent: * User-agent: * User-agent : Roverdog User-agent: googlebot Disallow : ftp-pass.txt




موضوعات مشابه: