loading...
قلب یخی
لایو بازدید : 57 سه شنبه 30 مهر 1392 نظرات (0)
چطور می شه یک وب اپلیکیشن امن داشت؟ چرا اکثر وب سایت های حرفه ای مثل ورد پرس و نردبان از کاراکتر ( - ) به جای ( _ ) برای جدا سازی بخش های «یو آر ال» استفاده می کنن؟ آیا می تونم به تنظیمات وب سرور دسترسی داشته باشم؟ این «یو آر ال» های درب و داغون! ام رو چطوری درست کنم؟ می خوام صفحات پیام خطای سایتم زیباتر باشن، آپاچی با صفحات ساده پیام خطای تو چه کنم؟ با بزرگترین اشتباه تاریخ وب (ورژن های مختلف IE) چطور کنار بیام؟! می شه بی درد سر سرعت بارگذاری صفحات رو بیشتر کرد؟ …


این ها نمونه کوچکی از سوالات و دغدغه هایی هستند، که خواسته و یا نا خواسته، ذهن اکثر ما وب دولوپر ها را به خود مشغول می کنند. مشکلاتی انکار ناپذیر که کم و بیش با آن ها مواجه شده ایم. در ادامه با مطرح کردن چند نکته مهم و راه حل های پیشنهادی برای آن ها با شما همراه خواهیم بود.


همان طور که می دانید htaccess. یا (hypertext access) یک فایل ساده متنی است که تنظیمات وب سرور در آن نوشته شده است. این فایل در دایرکتوری اصلی (root) قرار دارد و توسط یک ادیتور ساده، به راحتی قابل ویرایش و بازنویسی است.
علاوه بر این باید خاطر نشان کرد که فایل htaccess. به شکل پیش فرض hidden بوده و تنها بر روی سیستم های بر پایه لینوکس قابل اجراست. 

در صورت تمایل با نصب کیت هایی از قبیل XAMPP - WAMP و MAMP (برای کاربران مک) قادر خواهید بود تا فایل htaccess. و دستورات مربوط به آن را به صورت لوکال و بر روی کامپیوتر شخصی خود مورد بررسی قرار دهید.

htaccess. یک فایل دینامیک است. به این ترتیب هر تغییری که در آن ایجاد کنید، بر خلاف تغییرات اعمال شده در فایل تنظیمات کلی (global configration file) بدون راه اندازی مجدد سرور قابل مشاهده است.

فرمت فایل htaccess. بسیار شبیه به فایل تنظیمات کلی آپاچی (httpd.conf) است. بنابراین بسیاری از دستورات این فایل در htaccess. قابل درج و اجراست.

کاربرد و نحوه اعمال دستورات:

Redirections:   یکی از استفاده های رایج فایل htaccess. به کار گیری آن برای انجام عمل redirect و یا بازنویسی (rewrite) یو آر ال هاست. از این تکنیک برای بهینه سازی موتور های جستجو (SEO) در صورت تغییر در نام دامین، بازشناسی ساختار فایلی و تبدیل «یو آر ال» های طولانی و سخت به عبارت های آسان تر و قابل درک استفاده می شود. 

این عمل به سادگی و با دستور کوتاه زیر قابل اجراست:


  1. Redirect 301 ^old\.html$ http://localhost/new.html


این دستور کد وضعیت پروتکل ارتباطی HTTP را در حالت انتقال دایم (301) قرار داده و تمامی درخواست های مربوط به آدرس قبلی (old.html) را به آدرس جدید (new.html) هدایت می کند.

url rewriting «بازنویسی یو آر ال» یکی از بهترین و سریع ترین روش ها برای افزایش کاربرد پذیری  و داشتن «جستجویی» بهتر است. 

«یو آر ال» اکثر سایت های دینامیک به شکلی طراحی شده است که با استفاده از متغیر های تعبیه شده در آن، اطلاعات مورد نیاز کاربر را در اختیار وی قرار دهند. به عنوان مثال در صفحه مربوط به این آدرس، اطلاعات متعلق به محصول با شماره شناسایی ۷ قابل مشاهده است:


  1. http://www.pets.com/show_a_product.php?product_id=7


نکته اینجاست که استفاده از چنین ساختاری برای «یو آر ال» کاربرد پذیری (usability) چندان خوبی ندارد و قابل به خاطر سپردن نیست، خواندن آن بر روی صفحات کوچک تلفن های هوشمند مشکل است و جالب است بدانید عده بسیاری از کاربران از طریق «یو آر ال» و بدون کلیک کردن بر روی لینک ها به صفحه مورد نظر خود مراجعه می کنند.

علاوه بر این موتور های جستجو و کاربران به دریافت اطلاعات هرچه مفید تر و کارآمد تر از «یو آر ال ها» علاقه مند هستند.

به عنوان مثال در صورت تغییر «یو آر ال» بالا به فرم زیر دسترسی به صفحه مورد نظر و به خاطر سپردن آن راحت تر خواهد بود.


  1. http://www.pets.com/products/7/


اشکال کار اینجاست که از طریق «یو آر ال» نوع محصول شماره ۷ برای کاربر و موتور جستجو قابل تشخیص نیست. بنابراین بهتر است «یو آر ال» بالا به فرم زیر تغییر کند:


  1. http://www.pets.com/parrots/norwegian-blue/


بدین ترتیب با نگاه کردن به «یو آر ال» بالا متوجه می شویم این صفحه مربوط به یک نژاد خاص از طوطی است. باید توجه داشت که از نظر موتور جستجو خط فاصله (hyphen mark) برخلاف (underscore) به عنوان space در نظر گرفته می شود. بنابراین بهتر است در «یو آر ال» های خود به جای ( _ ) از ( - ) استفاده کنید.

باید توجه کرد که چنین «یو آر ال» ای به آسانی برای سرور قابل درک نیست و باید بازنویسی (rewrite) و ترجمه شود.

آپاچی، وب سرور محبوب دنیای وب، یکی از آسان ترین روش ها را برای باز نویسی «یو آر ال» ها در پیش گرفته است. آپاچی با استفاده از یکی از ماژول های ساختاری خود (mod_rewrite) به راحتی «یو آر ال» های ناکارآمد و غیر معمول ما را بازنویسی می کند. در ادامه با اصول اولیه بازنویسی یو آر ال (URL Rewriting) آشنا خواهیم شد.

برای شروع مثال ساده زیر را در نظر بگیرید. صفحه زیر در وب سایت فرضی ما با یک اسکریپت ساده «پی اچ پی» نمایش داده می شود.


  1. http://www.pets.com/pet_care_info_07_07_2008.php


در ادامه «یو آر ال» بالا را به فرم زیر در خواهیم آورد:


  1. http://www.pets.com/pet-care


برای این منظور در ابتدا می بایست یک داکیومنت متنی با نام (htaccess.) در دایرکتوری اصلی (root) ایجاد کنیم [ جایی که فایل مربوط به صفحه مورد نظر ما قرار دارد ]. باید توجه داشت که نام این فایل می بایست به صورت دقیق و با احتساب دات (.) در ابتدای آن در نظر گرفته شود. بنابراین استفاده از نام هایی مثل "htaccess.txt." و یا "rules.htaccess" مجاز نیست.

«htaccess.» یک فایل کانفیگ برای سرور است. در صورتی که خطایی در آن وجود داشته باشد، پیام خطای محبوب! سرور با شماره "500" نمایش داده می شود.

در صورتی که برای آپلود فایل htaccess. از FTP (پروتکل انتقال فایل) استفاده می کنید باید از تنظیمات آن مبنی بر ASCII بودن آن (از روش BINARY استفاده نکند) اطمینان حاصل کنید.

برای بازنویسی «یو آر ال» در ابتدا می بایست موتور rewrite را روشن کرده و پس از آن دستور العمل مورد نظر خود را برای آپاچی بیان کنیم. بدین ترتیب می بایست کد زیر را به فایل htaccess. خود اضافه کنیم:


  1. RewriteEngine on # Turn on the rewriting engine
  2. RewriteRule ^pet-care/?$ pet_care_info_01_02_2008.php [NC,L]


نکته:
- ساختار نوشتاری فایل htaccess. به گونه ای است که هر چیزی پس از (#) به عنوان کامنت در نظر گرفته می شود.

خط دستور "RewriteRule" به بخش های زیر تقسیم می شود:
RewriteRule : به آپاچی می گوید که مجموعه این دستورات مربوط به یک RewriteRule است.
 
^/pet-care/?$ : سرور با در نظر گرفتن این الگو، پس از ارسال هر درخواست، در صورت تطابق آن با URL مربوطه بخش "pet_care_info_01_02_2003.php" را با آن جایگزین می کند.

[NC,L] : به عنوان یک "Flag" چگونگی انجام دستورات را برای آپاچی مشخص می کند. در اینجا از دو «فلگ» استفاده شده است. بخش "NC" به آپاچی می گوید این دستور case-sensitive نیست، و قسمت "L" آن مربوط به محدود کردن آپاچی است و بدین ترتیب وب سرور موظف است تا دستورالعمل دیگری را اجرا نکند.


ارسال نظر برای این مطلب

کد امنیتی رفرش
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آرشیو
    آمار سایت
  • کل مطالب : 350
  • کل نظرات : 0
  • افراد آنلاین : 1
  • تعداد اعضا : 0
  • آی پی امروز : 28
  • آی پی دیروز : 2
  • بازدید امروز : 31
  • باردید دیروز : 3
  • گوگل امروز : 1
  • گوگل دیروز : 0
  • بازدید هفته : 34
  • بازدید ماه : 164
  • بازدید سال : 402
  • بازدید کلی : 5,681