تبلیغات
آموزش - مطالب سرور / نرم و سخت افزاری

راهنمای کاربردی فایل های .htaccess

تعریف: .htaccess یا Hypertext access یک فایل پیکربندی سطح دایرکتوری است که توسط وب سرور های متعددی پشتیبانی می شود، که امکان تنظیم غیر متمرکز برای مدیریت پیکربندی های سرور را فراهم می آورد. این فایل در داخل شاخه های وب قرار گرفته و امکان تنظیم مجدد زیر مجموعه ای از تنظیمات کلی دایرکتوری هایی که در داخل آن قرار دارد و دایرکتوری های زیر مجموعه را فراهم می آورد.
هدف اصلی .htaccess همانطور که از نام پیداست، امکان کنترل سطح دسترسی هر دایرکتوری به صورت مجزاست، به عنوان مثال نیاز به پسورد برای دستیابی به یک سری از داده ها. امروزه .htaccess به غیر از موارد نامبرده قابلیت بازنویسی تنظیمات دیگری نظیر نوع محتوا و کاراکتر، هندلر های CGI و ... را دارد.
* منبع: ویکی پدیا انگلیسی

اکنون هدف از نگارش این پست، ارائه راهنمایی هایی برای برنامه نویسان تازه کاری است که به هر نحو نیاز به تغییر و تفسیر این فایل پیکربندی را دارند. در ادامه مهم ترین و کاربردی ترین دستورات به صورت یک به یک توضیح داده می شود:
1- در نظر گرفتن صفحه پیشفرض در دایرکتوری:
DirectoryIndex index.html index.php index.htm
سیستم به صورت اتوماتیک هر کدام از فایل های موجود از بین لیست را به عنوان صفحه پیشفرض معرفی می کند. اولویت بر اساس تعریف است.

2- ایجاد ارور شخصی سازی شده:
ErrorDocument 404 errors/404.html
هنگامی که وب سرور با خطا های گوناگونی برخورد کرد، در این مثال 404، شما می توانید صفحه را به یک آدرس از پیش تعریف شده نظیر گزینه بالا منتقل کنید، همینطور طبق کد پایین امکان ایجاد وضعیت داینامیک را نیز برای اررور های گوناگون در اختیار خواهید داشت:
ErrorDocument 404 /cgi-bin/error/error?404

3- کنترل سطح دسترسی به فایل ها و دایرکتوری:
بیشترین کاربردی که فایل های .htaccess دارند، تنظیم سطح دسترسی به یک دایرکتوری، مسیر یا فایل مشخصی است؛ به عنوان مثال ممکن است دایرکتوری خاصی در صفحه فراخوانی شده باشد، اما شما نخواهید تا کاربران به صورت مستقیم به فایل های داخل آن دسترسی داشته باشند، بنابراین می توانید از دستور زیر در فایل .htaccess درون دایرکتوری استفاده نمائید:
deny from all
شما هم چنین می توانید همین تعریف را بر اساس IP ها نیز تفکیک کنید، به عنوان مثال شما دوست دارید یک رنج از IP قادر به بازدید صفحه باشند، اما سایر IP ها نتوانند به آن دسترسی بیابند که از دستور زیر طبق نیاز استفاده خواهید نمود:
order deny,allow
deny from all
allow from 192.168.0.0/24
کلمه all به همه انواع درخواست ها اشاره دارد و به جای آن می توانید همانطور که گفتیم از IP آدرس ها استفاده نمائید.
گاهی دوست دارید یک IP مشخص را از دسترسی به صفحه منع کنید، مانند روباتی که از قوانین متداول پیروی نمی کند، بنابراین از کدی شبیه به زیر استفاده می کنید:
order allow,deny
deny from 83.222.23.219
allow from all

4- اصلاح متغیر های محلی:
متغیر های محلی شامل اطلاعاتی است که توسط فراخوانی های سمت سرور و CGI مورد استفاده قرار می گیرد. ایجاد (Set) و حذف (Unset) کردن این متغیر ها از دستور SetEnv و دستور UnSetEnv امکان پذیر است. مثال:
SetEnv SITE_WEBMASTER "Hamid Yousefi"
SetEnv SITE_WEBMASTER_URI mailto:mails.Mihanblog@gmail.com
UnSetEnv REMOTE_ADDR

5- ریدایرکت نوع 301 با استفاده از .htaccess:
برای ریدایرکت از یک مستند قدیمی به یک آدرس جدید، از این کد استفاده خواهید نمود:
Redirect 301 /beta/yourpage.html http://mydom.ir/final/hello.html
برای انتقال کامل یک دایرکتوری به یک آدرس جدید نیز می توانید از کد زیر استفاده نمائید:
RedirectMatch 301 /master(.*) http://yourdomain.com/$1

6- پیاده سازی طرح کش:
ایجاد طرح کش (ذخیره سازی موقت) برای افزایش کارایی سیستم است. شما می توانید منابع استاتیک یا هر نوع داده منحصر به فردی را طبق دستورات زیر وارد طرح کش نمائید:

<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf|mp3|mp4)$">
   Header set Cache-Control "public"
   Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"
   Header unset Last-Modified
</FilesMatch>
<FilesMatch "\.(html|htm|xml|txt|xsl)$">
   Header set Cache-Control "max-age=7200, must-revalidate"
</FilesMatch>
<FilesMatch "\.(js|css)$">
   SetOutputFilter DEFLATE
   Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"
</FilesMatch>

7- فشرده سازی خروجی با استفاده از GZip:
با اضافه کردن دستورات زیر شما همه منابع js و css و ... خود را با استفاده از فشرده ساز GZip به خروجی خواهید فرستاد:

<IfModule mod_gzip.c>
    mod_gzip_on         Yes
    mod_gzip_dechunk  Yes
    mod_gzip_item_include file      \.(html?|txt|css|js|php|pl)$
    mod_gzip_item_include handler   ^cgi-script$
    mod_gzip_item_include mime      ^text/.*
    mod_gzip_item_include mime      ^application/x-javascript.*
    mod_gzip_item_exclude mime      ^image/.*
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>
کد بالا تنها زمانی کارایی خواهد داشت (همانطور که در دستور IfModule مشخص است) که ماژول mod_gzip بر روی وب سرور فعال باشد. در صورتی که وب سرور شما از ماژول mod_deflate پشتیبانی می کند، می توانید از کد زیر استفاده کنید:

<Location>
    SetOutputFilter DEFLATE
      SetEnvIfNoCase Request_URI  \
        \.(?:gif|jpe?g|png)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI  \
        \.(?:exe|t?gz|zip|gz2|sit|rar)$ no-gzip dont-vary
</Location>
در صورتی که وب سرور شما از mod_deflate هم پشتیبانی نمی کند، از دستورات زیر استفاده کنید:
<FilesMatch "\.(txt|html|htm|php)">
    php_value output_handler ob_gzhandler
</FilesMatch>
در وضعیت عادی، وب سرور ها این دستور را اجرا خواهند نمود.

8- ریدایرکت مرورگر به https:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

9- بازنویسی (ReWrite) آدرس ها (URL) با استفاده از .htaccess
برای دسترسی به آدرس index.php?do=contact از طریق آدرس contact.html می توانید از کد زیر استفاده نمائید:
RewriteEngine on
RewriteRule ^contact\.html$ index.php?do=contact
برای بازنویسی حالاتی نظیر همانند سازی دسترسی products/32.html به index.php?do=products&id=32 دستور زیر می تواند مفید باشد:
RewriteEngine on
RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ product.php?id=$2

10- بازنویسی آدرس های بدون پیشوند www به آدرس های دارای www از همان آدرس:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^Mihanblog\.com$
RewriteRule (.*) http://www.Mihanblog.com/$1 [R=301,L]
بازنویسی آدرس yoursite.com/xyz به index.php?username=xyz
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1

11- بازنویسی دامنه اصلی به ساب دامنه یا دایرکتوری زیر شاخه public_html:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^Mihanblog\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.Mihanblog\.com$
RewriteCond %{REQUEST_URI} !^/beta/
RewriteRule (.*) /beta/$1

12- کنترل دسترسی به یک فایل:
در اغلب اوقات فایل .htaccess سطوح دسترسی به کل دایرکتوری را تنظیم می کند، اما امکان تعیین سطح دسترسی به یک فایل منحصر به فرد را نیز داریم. می توان برای این کار از کد زیر استفاده نمود:
<Files quiz.html>
   order deny,allow
   deny from all
   AuthType Basic
   AuthName "Characterology Student Authcate"
   AuthLDAP on
   AuthLDAPServer ldap://directory.characterology.com/
   AuthLDAPBase "ou=Student, o=Characterology University, c=au"
   require valid-user
   satisfy any
</Files>
این ها همه آن چیزی نیست که از فایل .htaccess برای باز تنظیم آن می توان استفاده کرد، اما عملا مهم ترین آن ها هست.


افسانه هایی برای افزایش امنیت مودم ها و روترهای وایرلس


تکنولوژی Wi-Fi سالهاست رو به گسترش است و متناسب با این گسترش، راه های تامین امنیت و همچنین راه های هک و نفوذ به این شبکه ها پیچیده تر می شود.

یکی از دغدغه های اکثر استفاده کنندگان از مودم های وایرلس، تامین امنیت مودمشان و جلوگیری از استفاده غیر مجاز یا به بیان ساده تر دزدی از اشتراک اینترنتشان است. در اینجا به ۵ توصیه رایج یا افسانه برای افزایش امنیت مورد یا شبکه وایرلس اشاره می کنیم که باید به آنها گوش “نکنید”.

تصویر 1

افسانه اول : نام شبکه (SSID) خود را مخفی کنید.

هر روتر وایرلسی یا هر اکسس پونتی یک نام شبکه یا به بیان تخصصی تر یک SSID دارد. SSID مخفف Service Set Identifier می باشد. در حالت پیش فرض این نام برای همه قابل مشاهده است در نتیجه هر کاربر دیگری در محدوده تحت پوشش امواج Wi-Fi می تواند آن نام را مشاهده کنید.مخفی کردن این نام شاید و ظاهرا بتواند در امنیت شبکه شما موثر باشد. با این حال برخی از دستگاه های مانند PC های دارای ویندوز ۷ همچنان کل شبکه های موجود را نشان می دهند اما با نامی دیگر. با این حال این راه هکرها را وسوسه می کند چون با خود فکر می کنند حتما این شبکه چیزهای جالبی برای مخفی کردن دارد که نامش را مخفی کرده است.

در کل مخفی کردن نام SSID راه خوبی برای مقابله با فضول های معمولی و بچه همسایه است اما هکرهای کلاه سیاه یا با تجربه را نمی تواند مانع شود. چرا که مودم یا روتر شما همچنان در حال پخش امواج خود در تمامی جهت هاست و تشخیص این امواج از طریق یک wifi network scanner به راحتی آب خوردن قابل تشخیص است.

افسانه دوم: نفوذ به شبکه های کوچکتر سخت تر است!

این موضوع به بیان ساده تر یعنی اگر قدرت انتشار امواج روتر خود را کمتر کنید، برای فردی خارج از خانه یا شرکت شما سخت است که بتواند به شبکه شما نفوذ کند چرا که آنها نمی توانند شبکه شما را شناسایی کنند. این افسانه شاید ساده لوحانه ترین راه برای افزایش امنیت مودم وایرلس شما باشد.

هرکس که بخواهد یک شبکه Wi-Fi را هک کند، از آنتن های قدرتمندی استفاده می کند که مطمئنا سیگنال های روتر یا مودم شما را نیز شناسایی خواهد کرد.

کاهش قدرت انتشار امواج روتر فقط و فقط می تواند محدوده تحت پوشش و همچنین کیفیت استفاده برای کاربران مجاز را کاهش دهد. فایده دیگری ندارد!

تصویر 2


افسانه سوم: فیلتر کردن MAC Address

ابتدا بگوییم MAC Address چیست. MAC مخفف Media Access Control می باشد. مک آدرس یک آدرس یگانه بوده که مختص هر دستگاه روی شبکه است. یک مک آدرس تشکیل شده از چند شماره و عدد به صورت  ۰۰:۰۲:D1:1A:2D:12.

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

در این افسانه برای تامین امنیت روتر به شما گفته می شود که می توانید روتر خود را طوری تنظیم کنید که تنها دستگاه هایی با یک مک آدرس مشخص بتوانند به آن وصل شوند.

انجام این تنظیمات راحت است. شما مک آدرس خود یا کسانی که می خواهد به شبکه وصل شوند را مشخص می کنید و در تنظیمات روتر خود لیست آنها را وارد می کنید. هیچ دستگاهی غیر از دستگاه هایی که مک آدرس آنها در لیست مذکور است نمی توانند به شبکه وصل شوند.

اما لازم نیست شما خود را به زحمت بیندازید. یک هکر با استفاده از یک آنالیزور شبکه وایرلس می تواند به راحتی تمام مک آدرس هایی را که به شبکه متصل است بفهمد. بعد از آن، با تغییر مک آدرس سیستم خود به یکی از مک آدرس های مجاز متصل به شبکه به راحتی اجازه ورود به شبکه شما را پیدا می کند.

این روش همانند روش پنهان کردن SSID برای افراد معمولی و بچه همسایه خوب است اما نمی تواند جلوی یک هکری را که قصد کرده به شبکه شما نفوذ کند، بگیرد. این کار تنها زحمت شما و کسانی که مجاز به اتصال به شبکه شما هستند را زیاد می کند چرا که باید برای هر بار اتصال یک دستگاه جدید تنظیمات روتر را دستکاری کنید.


افسانه چهارم: آدرس های IP روتر خود را محدود کنید.

هر دستگاه متصل به شبکه علاوه بر داشتن یک آدرس Mac منحصر به فرد، یک IP مخصوص به خود نیز دارد. IP اختصاص داده شده توسط روتر شامل اعدادی مانند ۱۹۲٫۱۶۸٫۱٫۱۰ می باشد. برخلاف آدرس Mac، که دستگاه شما به روتر ارسال می کند، روتر از سرور DHCP برای اختصاص و ارسال یک IP خاص به هر دستگاهی که به آن متصل می شود ، استفاده می کند.

بر اساس این افسانه، شما می توانید با محدود کردن IP آدرس هایی که می توانند به روتر شما متصل شوند، تعداد دستگاه هایی که می توانند از شبکه شما استفاده کنند را محدود کنید. مثلا محدوده آدرس های IP را در محدوده ۱۹۲٫۱۶۸٫۱٫۱ تا ۱۹۲٫۱۶۸٫۱٫۱۰ محدود کنید.

علت بی اثر بودن چنین کاری را در افسانه بعدی بیان می کنیم.

افسانه پنجم: سرور DHCP خود را غیر فعال کنید.

ریشه این افسانه در این اعتقاد نهفته است که شما می توانید با غیر فعال کردن سرور DHCP خود و اختصاص IP دستگاه ها به صورت دستی، شبکه خود را ایمن کنید. زیرا هر دستگاهی که یکی از IP آدرس های اختصاص داده شده توسط شما را نداشته باشد، نمی تواند به شبکه شما متصل شود. در این حالت شما جدولی از IP آدرسها و دستگاه های متصل به هر IP را باید تهیه کنید. کاری که با Mac آدرس هم انجام می دهید. همچنین باید به صورت دستی تنظیمات مربوط به اختصاص IP را انجام دهید.

تصویر 3

نقطه ضعف این راهکار آن است که اگر در حال حاضر هکری توانسته باشد به شبکه شما نفوذ کند، با اسکن IP می تواند IP آدرس های مورد استفاده در شبکه را پیدا کند. پس از آن می تواند آدرس خود را با آن منطبق کند و به راحتی از شبکه شما استفاده کند.

تنها فایده این راه همان است که در مورد Mac آدرس گفتیم و آن اینکه اتصال دستگاه های جدید و مجاز به شبکه شما را سخت تر می کند.

تصویر 4

حالا شاید با خود بپرسید که تمام راه هایی را که اغلب سایت های معمولی و نه تخصصی به عنوان راه های افزایش امنیت مودم شما بیان می کنند، افسانه خوانده ایم، حال باید برای امن کردن مودم یا روتر خود چه کنی



آموزش با نگرشی نوین

گروه آموزش

مترجم سایت


آخرین پست ها


آمار وبلاگ

  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :
  • رتبه وبلاگ در یاهو و گوگل:

    Yahoo bot last visit powered by  Ybotvisit.com

    رتبه وبلاگ در گوگل

  • SEO Stats powered by MyPagerank.Net

  • افراد آنلاین :

    web stats

  • IP free counters