آموزش استفاده از فایل htaccess
راهنمای مبتدیان برای فایل htaccess وردپرس
آموزش استفاده از فایل htaccess
ایمن نگه داشتن سایت باید اولویت اصلی هر مدیری باشد. وردپرس یک پلتفرم امن است. اما این بدان معنا نیست که در برابر حملات غیرقابل نفوذ است. خوشبختانه، حتی اگر متخصص امنیت نیستید، می توانید از فایلی به نام .htaccess برای مقاوم تر کردن تدابیر امنیتی سایت خود استفاده کنید. .htaccess یک فایل پیکربندی برای وب سرور آپاچی است که به بسیاری از سایت های وردپرس خدمات می دهد. ابزار قدرتمندی است که به محافظت از سایت شما و افزایش عملکرد آن از طریق برخی تغییرات جزئی در کد آن کمک می کند. با ویرایش این فایل می توانید کاربران را ممنوع کنید، تغییر مسیر ایجاد کنید، از حملات جلوگیری کنید و حتی دسترسی به بخش های خاصی از سایت خود را ممنوع کنید. با وبلاگ تهران سرور در این آموزش همراه باشید.
مقدمه ای بر فایل htaccess
htaccess مخفف عبارت HyperText Access است. این یک فایل پیکربندی است که نحوه تعامل سرورهای مبتنی بر آپاچی با سایت شما را تعیین می کند. به عبارت ساده تر، htaccess نحوه دسترسی به فایل های یک فهرست را کنترل می کند. شما می توانید آن را به عنوان یک نگهبان برای سایت خود در نظر بگیرید. زیرا تصمیم می گیرد به چه کسی اجازه ورود داده شود و چه کاری مجاز باشد. به طور پیش فرض، یک فایل htaccess. معمولا در نصب وردپرس شما گنجانده شده است.
هدف اصلی این فایل بهبود امنیت و عملکرد است. به علاوه، به شما امکان می دهد تنظیمات وب سرور خود را نادیده بگیرید. به احتمال زیاد فایل htaccess. خود را در دایرکتوری Root سایت خود پیدا خواهید کرد. از آنجایی که .htaccess هم برای دایرکتوری خودش و هم برای زیرشاخه های داخل پوشه اصلی اعمال می شود، بر کل سایت وردپرس شما تأثیر می گذارد. همچنین شایان ذکر است که فایل .htaccess پسوند فایل ندارد.
چگونه فایل htaccess وردپرس خود را ویرایش کنیم
ویرایش فایل htaccess. در عمل به سادگی ویرایش هر فایل متنی دیگری است. با این حال، از آن جا که این یک فایل اصلی است، ایجاد تغییرات در آن می تواند عواقب ناخواسته ای داشته باشد. به همین دلیل، مهم است که قبل از شروع، از سایت خود نسخه پشتیبان تهیه کنید، صرف نظر از اینکه مبتدی هستید یا یک توسعه دهنده با تجربه. وقتی آماده ویرایش فایل htaccess. هستید، می توانید با استفاده از پروتکل انتقال فایل امن (SFTP) یا پوسته امن (SSH) به آن دسترسی داشته باشید. htaccess. را در دایرکتوری ریشه/Root سایت خود خواهید یافت:
فایل را با استفاده از ویرایشگر متن دلخواه خود مانند TextEdit یا Notepad باز کنید. اگر فایل قبلاً ویرایش نشده باشد، اطلاعات پیش فرض زیر را مشاهده خواهید کرد:
مهم است که چیزی بین تگ های # BEGIN و # END اضافه یا تغییر ندهید. در عوض، تمام کدهای جدید باید بعد از این بلوک اضافه شوند.
در این مرحله، تنها کاری که باید انجام دهید این است که کد خود را اضافه کرده و فایل را ذخیره کنید. هنگامی که چندین عملکرد جدید را اضافه می کنید، بهتر است هر کدام را جداگانه ذخیره و آزمایش کنید. اگر خطایی رخ دهد، عیب یابی که کدام تغییر باعث ایجاد مشکل شده است را بسیار آسان تر می کند.
در حالی که تقریباً تمام نصبهای وردپرس قبلاً حاوی یک فایل .htaccess هستند، در برخی موارد، ممکن است نیاز به ایجاد آن داشته باشید. می توانید این کار را با استفاده از یک ویرایشگر متن انتخابی خود انجام دهید، به شرطی که آن را با نام فایل مناسب ذخیره کنید: htaccess. بدون پسوند. همچنین مهم است که تنظیمات مجوز فایل را به درستی پیکربندی کنید. سپس می توانید htaccess. را در فهرست اصلی سایت خود آپلود کنید.
9 کاری که می توانید با فایل htaccess وردپرس خود انجام دهید
اکنون که با فایل htaccess. آشنا شدید، وقت آن است که از نزدیک با آن و کارهایی که می توانید انجام دهید، آشنا شوید. ما قصد داریم چندین روش را معرفی کنیم که به راحتی می توانید با ویرایش این فایل، امنیت و عملکرد سایت خود را افزایش دهید. به سادگی از تکه کدهایی که در این مقاله ارائه کرده ایم استفاده کنید و به یاد داشته باشید که قبل از شروع یک نسخه پشتیبان تهیه کنید!
1. دسترسی به بخش هایی از سایت خود را ممنوع کنید
یکی از مفیدترین کارهایی که می توانید با htaccess انجام دهید، ممانعت از دسترسی به صفحات و فایل های خاص است. چند فایل وجود دارد که باید به دلایل امنیتی به این روش مخفی کنید، مانند فایل wp-config.php. می توانید این کار را با افزودن کد زیر انجام دهید، که اگر کسی سعی کند فایل را مشاهده کند، خطای 404 ظاهر می شود:
<Files ~ "/wp-config.php"> Order Allow,Deny Deny from All </Files>
در مواردی که داده های حساس باید پنهان شوند، محدود کردن دسترسی به دایرکتوری مربوطه می تواند مفید باشد. از آن جایی که بسیاری از سایت های وردپرس از ساختار پوشه یکسانی استفاده می کنند، این تنظیمات می تواند سایت شما را آسیب پذیر کند. اگر خط زیر را اضافه کنید، عملکرد فهرست دایرکتوری پیش فرض را غیرفعال می کند:
Options -Indexes
این کار باعث می شود تا کاربران و روبات ها نتوانند ساختار پوشه شما را مشاهده کنند. اگر کسی سعی کند به آن دسترسی پیدا کند، به جای آن، صفحه خطای 403 نشان داده می شود.
2. URLها را تغییر مسیر دهید و بازنویسی کنید
ایجاد ریدایرکت ها شما را قادر می سازد تا به طور خودکار کاربران را به یک صفحه خاص بفرستید. اگر صفحه ای جابه جا شده یا حذف شده باشد، و شما می خواهید کاربرانی که سعی می کنند به آن صفحه دسترسی پیدا کنند، به جای دیگری برده شوند، ریدایرکت ها می توانند بسیار مفید باشند. شما می توانید این کار را با افزونه ای مانند Redirection انجام دهید، اما این کار را با ویرایش فایل htaccess. نیز امکان پذیر است. برای ایجاد تغییر مسیر از کد زیر استفاده کنید:
Redirect /oldfile.html http://www.example.com/newfile.html
احتمالاً می توانید ببینید اینجا چه خبر است! قسمت اول مسیر فایل قدیمی است، در حالی که قسمت دوم آدرسی است که می خواهید بازدیدکنندگان به آن هدایت شوند.
3. سایت خود را مجبور به بارگیری ایمن با HTTPS کنید
اگر یک گواهی SSL به دامنه خود اضافه کرده اید، مانند گواهینامه رایگان Let’s Encrypt DreamHost، ایده خوبی است که سایت خود را مجبور کنید با استفاده از HTTPS بارگیری کند. این کار تضمین می کند که سایت شما هم برای شما و هم برای بازدیدکنندگان شما ایمن تر است. با افزودن کد زیر می توانید این کار را انجام دهید:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
اکنون سایت شما به طور خودکار هر درخواست HTTP را دریافت می کند و آن ها را به استفاده از HTTPS هدایت می کند. به عنوان مثال، اگر کاربری سعی کند به http://www.example.com دسترسی پیدا کند، به طور خودکار به https://www.example.com هدایت می شود.
4. تنظیمات کش را تغییر دهید
کش مرورگر فرآیندی است که در آن فایل های وب سایت خاصی به طور موقت در دستگاه محلی بازدیدکننده ذخیره میشوند تا صفحات را سریع تر بارگذاری کنند. با استفاده از htaccess، می توانید مدت زمان ذخیره فایل های خود را در حافظه پنهان مرورگر تا زمانی که با نسخه های جدید به روز می شوند، تغییر دهید. چند راه مختلف برای انجام این کار وجود دارد، اما برای این مثال، از تابعی به نام mod_headers استفاده خواهیم کرد. کد زیر حداکثر زمان ذخیره را برای همه فایلهای jpg، jpeg، png و gif تغییر می دهد:
<ifModule mod_headers.c> <filesMatch "\\.(jpg|jpeg|png|gif)$"> Header set Cache-Control "max-age=2592000, public" </filesMatch>
ما حداکثر زمان را روی 2592000 ثانیه تنظیم کرده ایم که معادل 30 روز است. در صورت تمایل می توانید این مقدار و همچنین پسوند فایل هایی که تحت تأثیر قرار می گیرند را تغییر دهید. اگر می خواهید تنظیمات مختلفی را برای برنامه های افزودنی مختلف اضافه کنید، به سادگی توابع mod_header بیشتری اضافه کنید.
5. از حملات اسکریپت خاص جلوگیری کنید
حملات تزریق اسکریپت یا «تزریق کد» با افزودن کد نامعتبر سعی در تغییر نحوه اجرای یک سایت یا برنامه دارند. به عنوان مثال، شخصی ممکن است یک اسکریپت را به یک فیلد متنی در سایت شما اضافه کند و سپس آن را ارسال کند، که می تواند باعث شود سایت شما واقعاً اسکریپت را اجرا کند. برای محافظت در برابر انواع خاصی از تزریق اسکریپت می توانید کد زیر را اضافه کنید:
Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) RewriteRule ^(.*)$ index.php [F,L]
اکنون سایت شما باید بتواند تلاش های تزریق اسکریپت را شناسایی و متوقف کند و مجرم را به صفحه index.php خود هدایت کند. با این حال، توجه به این نکته مهم است که این مثال در برابر همه انواع حملات تزریقی محافظت نمی کند. در حالی که این کد خاص مطمئناً می تواند مفید باشد، نباید از آن به عنوان تنها محافظت در برابر این نوع حمله استفاده کنید!
6. حملات شمارش نام کاربری را متوقف کنید
شمارش نام کاربری فرآیندی است که در آن نام کاربری از سایت شما با نگاه کردن به صفحه نویسنده هر کاربر جمع آوری می شود. این امر به ویژه اگر کسی موفق شود نام کاربری مدیر شما را پیدا کند، مشکل ساز است، که دسترسی ربات ها به سایت شما را بسیار آسان تر می کند. با افزودن کد زیر می توانید از شمارش نام کاربری جلوگیری کنید:
RewriteCond %{REQUEST_URI} !^/wp-admin [NC] RewriteCond %{QUERY_STRING} author=\d RewriteRule .* - [R=403,L]
با این کار تلاش ها برای شمارش نام های کاربری متوقف می شود و به جای آن صفحه خطای 403 ایجاد می شود. به خاطر داشته باشید که این امر مانع از همه شمارش ها نمی شود و باید امنیت خود را به طور کامل آزمایش کنید. ما همچنین توصیه می کنیم صفحه ورود خود را با اجرای تأیید اعتبار چند عاملی بیشتر تقویت کنید.
7. از Hotlinking تصویر جلوگیری کنید
Hotlinking تصویر یک مشکل رایج است که زمانی اتفاق می افتد که تصاویر روی سرور شما در سایت دیگری نمایش داده می شود. می توانید با افزودن کد زیر به .htaccess این کار را متوقف کنید:
RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^https://(www\.)?example.com/.*$ [NC] RewriteRule \.(png|gif|jpg|jpeg)$ https://www.example.com/wp-content/uploads/hotlink.gif [R,L]
دامنه خود را جایگزین example.com کنید. این کد از بارگذاری تصاویر در سایر سایت ها جلوگیری میکند. در عوض، تصویری که در خط آخر مشخص کردهاید بارگذاری می شود. می توانید از این برای ارسال یک تصویر جایگزین به سایت هایی که سعی در نمایش گرافیک از سرور شما دارند استفاده کنید. مراقب باشید که این کار ممکن است باعث بروز مشکلاتی در زمانی که بخواهید تصاویر به صورت خارجی ظاهر شوند، مانند موتورهای جستجو به وجود می آورد. همچنین ممکن است به جای یک تصویر ثابت به یک اسکریپت پیوند دهید، سپس با یک تصویر واترمارک شده یا یک تصویر حاوی آگهی پاسخ دهید!
8. پسوندهای فایل خود را کنترل کنید
با استفاده از htaccess می توانید نحوه بارگذاری فایل های پسوندهای مختلف توسط سایت خود را کنترل کنید. کارهای زیادی می توانید با این ویژگی انجام دهید، مانند اجرای فایل ها بهعنوان PHP، اما ما در حال حاضر فقط به یک مثال اولیه نگاه میکنیم. کد زیر پسوند فایل را از فایل های PHP پس از بارگذاری حذف می کند. شما می توانید از این با هر نوع فایلی استفاده کنید، تا زمانی که تمام نمونه های ‘php’ را با پسوند مورد نظر خود جایگزین کنید:
RewriteEngine On RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\ HTTP/ RewriteRule ^(.*)index$ http://example.com/$1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/$ http://example.com/$1 [L,R=301] RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.+)\.php\ HTTP/ RewriteRule ^(.+)\.php$ http://example.com/$1 [L,R=301] RewriteRule ^([a-z]+)$ /$1.php [L]
این باعث می شود که همه فایل های PHP بدون نمایش پسوند آن ها در URL بارگیری شوند. برای مثال، فایل index.php به صورت فقط index ظاهر می شود.
9. فایل ها را مجبور به دانلود کنید
در نهایت، زمانی که فایلی در سایت شما درخواست می شود، رفتار پیش فرض نمایش آن در مرورگر است. به عنوان مثال، اگر یک فایل صوتی را میزبانی می کنید، به جای ذخیره شدن در رایانه بازدیدکننده، شروع به پخش در مرورگر می کند. شما می توانید با مجبور کردن سایت به دانلود فایل به جای آن، این مورد را تغییر دهید. این کار با کد زیر قابل انجام است:
AddType application/octet-stream mp3
در این مثال، ما از فایلهای mp3 استفاده کردهایم، اما شما میتوانید از همان عملکرد برای txt، mov یا هر پسوند مرتبط دیگری استفاده کنید.
جمع بندی/امنیت و عملکرد سایت خود را بهبود بخشید
فایل .htaccess انعطاف پذیری را برای کنترل نحوه رفتار سرور وب شما فراهم می کند. همچنین می توانید از آن برای افزایش عملکرد سایت خود استفاده کنید و کنترل بیشتری روی اینکه دقیقاً چه کسی می تواند به چه اطلاعاتی دسترسی داشته باشد، داشته باشید. با htaccess، می توانید دسترسی به بخش های خاصی از وب سایت خود را ممنوع کنید. علاوه بر این، به شما امکان می دهد URL ها را تغییر مسیر دهید، سایت خود را مجبور به بارگیری از طریق HTTPS کنید و از برخی حملات تزریق اسکریپت جلوگیری کنید.
ویرایش فایل htaccess. تنها یک راه برای بهبود امنیت سایت شما است. انتخاب یک ارائه دهنده هاست امن وردپرس یکی دیگر از موارد دیگر است. برنامه های میزبانی مدیریت شده DreamPress ما را بررسی کنید تا ببینید چگونه می توانیم امنیت و عملکرد وب سایت شما را افزایش دهیم!