چگونه با فایل htaccess. امنیت سایت وردپرس خود را افزایش دهیم
شاید قبلاً شنیدهاید که هکرها به سایتهای آسیبپذیر حمله میکنند و نگران هستید که سایت شما هم در معرض خطر باشد. میخواهید سایتتان را امن کنید اما نمیدانید از کجا شروع کنید. خوشبختانه، یک ابزار قدرتمند در دسترس شماست: فایل .htaccess.
این فایل به شما امکان میدهد قوانینی تعیین کنید که جریان ترافیک به سایتتان را کنترل کنید. با چند خط کد ساده، میتواند عملکردهایی مشابه یک فایروال خوب داشته باشد و امنیت سایت خود را بالا ببرید.
با این حال، ویرایش فایل .htaccess میتواند کمی ترسناک به نظر برسد، مخصوصاً وقتی به خطرات احتمالی فکر میکنید: آیا ممکن است سایتتان از دسترس خارج شود؟ آیا یک اشتباه کوچک میتواند کل سایت را مختل کند؟ این نگرانیها کاملاً منطقی هستند. خوشبختانه با رعایت نکات ایمنی و پیروی از دستورالعملهای اساسی، میتوانید امنیت سایت وردپرسی خود را با فایل htaccess. بدون مشکل افزایش دهید.
خلاصه: با استفاده از فایل htaccess. میتوانید امنیت سایت وردپرسی خود را بالا ببرید، دایرکتوریهای مهم را محافظت کنید، SSL را اجباری کنید و دسترسی غیرمجاز را مسدود کنید.
نکات امنیتی با فایل htaccess.
این راهنما قدمبهقدم شما را با روشهای ایمنسازی سایت وردپرس از طریق فایل .htaccess آشنا میکند و نشان میدهد چه کدهایی را باید اضافه کنید و چگونه این کار را درست انجام دهید تا سایتتان زنده و عملکردش حفظ شود.
نکته مهم: قبل از ویرایش هر فایل سیستمی مانند .htaccess، حتماً از سایت خود نسخه پشتیبان کامل شامل فایلها و دیتابیس تهیه کنید. اگر اشتباهی رخ دهد، نسخه پشتیبان میتواند نجاتبخش باشد.
۱. محافظت از فایل wp-config.php
فایل wp-config.php یکی از حساسترین فایلهای وردپرس است و شامل اطلاعات مهمی مانند تنظیمات دیتابیس و کلیدهای امنیتی میشود. دسترسی غیرمجاز به این فایل میتواند باعث نفوذ جدی به سایت شود، از جمله دسترسی به دیتابیس یا کنترل کامل سایت.
برای محافظت از این فایل، میتوانید کد زیر را به .htaccess اضافه کنید:
<files wp-config.php>
order allow,deny
deny from all
</files>
این کار دسترسی همه را به فایل wp-config.php مسدود میکند.
۲. غیر فعال کردن directory browsing
فعال بودن directory browsing میتواند به هکرها اجازه دهد ساختار سایت شما را ببینند و نقاط ضعف را پیدا کنند. برای جلوگیری از این امکان، کد زیر را اضافه کنید:
Options -Indexes
این دستور از نمایش محتویات دایرکتوریها جلوگیری میکند.
۳. مسدود کردن دسترسی به wp-content
دایرکتوری wp-content بخش مهمی از سایت وردپرس شماست. این دایرکتوری شامل آپلودها، افزونهها، قالبها و سایر فایلهای مهم، از جمله اسکریپتهای PHP است. متأسفانه، این دایرکتوری به هدف اصلی هکرهایی تبدیل میشود که به دنبال سوءاستفاده از سایت شما هستند. هکرها میتوانند به این دایرکتوری دسترسی پیدا کنند و بدافزار تزریق کنند یا فایلهای مخرب آپلود کنند. در بدترین حالت، آنها همچنین میتوانند کنترل سایت شما را به دست بگیرند. این میتواند منجر به سرقت دادهها، تغییر ظاهر سایت و حتی آلودگی در سطح سرور شود. از این رو، مسدود کردن دسترسی غیرمجاز به دایرکتوری wp-content به یک اقدام امنیتی حیاتی تبدیل میشود.
برای جلوگیری از دسترسی غیرمجاز:
<Directory “wp-content”>
Order allow,deny
Deny from all
<Files ~ “.(jpg|jpeg|png|gif|css|js)$”>
Order allow,deny
Allow from all
</Files>
</Directory>

توجه داشته باشید که مسدود کردن کامل wp-content ممکن است نصب و بهروزرسانی پلاگینها را مختل کند، بنابراین گاهی لازم است دسترسیها را موقتاً باز کنید.
یکی دیگر از روشهایی افزایش امنیت سایت، غیر فعال کردن ویرایش کد وردپرس برای امنیت بیشتر است که در این صفحه میتوانید مطالعه کنید.
۴. پیادهسازی هدرهای امنیتی
هدرهای امنیتی به مرورگر میگویند که چگونه با دادههای سایت شما رفتار کند و از حملاتی مانند XSS و clickjacking جلوگیری میکنند:
هدرهای امنیتی برای محافظت از سایت وردپرس شما در برابر انواع مختلف تهدیدات سایبری بسیار مهم هستند. این شامل حملاتی مانند اسکریپت نویسی بین سایتی (XSS)، کلیک دزدی و سایر حملات تزریق کد میشود. هدرهای امنیتی با آموزش نحوه برخورد با محتوای سایت شما به مرورگر، یک لایه دفاعی اضافی اضافه میکنند. این تضمین میکند که آسیبپذیریهای احتمالی قبل از اینکه مورد سوءاستفاده قرار گیرند، بسته میشوند.

هدرهای امنیتی قابل تنظیم هستند و قوانینی را در مورد نحوه برخورد با دادههای وبسایت شما به مرورگر ارائه میدهند. به عنوان مثال، هدرهای امنیتی میتوانند منابعی را که سایت شما میتواند اسکریپتها را از آنها بارگیری کند، محدود کنند، جاسازی سایت شما در فریمها را مجاز نکنند و سیاستهای امنیتی محتوا را اعمال کنند.
برای پیادهسازی هدرهای امنیتی، میتوانید قطعه کد زیر را به فایل .htaccess خود اضافه کنید:
Header set Strict-Transport-Security “max-age=31536000” env=HTTPS
Header set X-Content-Type-Options “nosniff”
Header set X-Frame-Options “SAMEORIGIN”
Header set X-XSS-Protection “1; mode=block”
Header set Content-Security-Policy “default-src ‘self’; script-src ‘self’ ‘unsafe-inline’ https://cdnjs.cloudflare.com; object-src ‘none’;”
این قطعه کد، رایجترین قوانین تعیینشده برای هدرهای امنیتی را نشان میدهد. شما همیشه میتوانید آنها را در صورت نیاز برای سایت خود تنظیم کنید.
۵. محدود کردن اجرای فایلهای PHP
محدود کردن اجرای PHP در دایرکتوریهای خاص، روشی مؤثر برای افزایش امنیت سایت وردپرس شماست. با غیرفعال کردن اجرای PHP در دایرکتوریهایی که استفاده از آن ضروری نیست، خطر اجرای اسکریپتهای مخرب را به میزان قابل توجهی کاهش میدهید. این امر به محافظت از سایت شما در برابر حملات رایج مانند تزریق PHP کمک میکند، که در صورت آپلود و اجرای فایلهای PHP مخرب توسط هکرها، میتواند ویرانگر باشد.

دایرکتوریهای رایجی که اجرای PHP در آنها اغلب غیرضروری است شامل wp-content/uploads، wp-includes و سایر پوشههای رسانه یا دارایی میشوند.
برای انجام این کار، قطعه کد زیر را به یک فایل .htaccess جدید در هر دایرکتوری مورد نظر اضافه کنید:
<Files *.php>
deny from all
</Files>
این کد را در دایرکتوریهای مورد نظر مانند wp-content/uploads قرار دهید.
۶. اجباری کردن SSL
اجرای SSL (لایه سوکتهای امن) در سایت وردپرس شما برای اطمینان از محافظت از دادههای منتقل شده بین وبسایت شما و بازدیدکنندگان آن ضروری است. SSL با رمزگذاری اطلاعات حساس، مانند اعتبارنامههای ورود به سیستم و اطلاعات شخصی، امنیت سایت شما را افزایش میدهد. این امر رهگیری و سوءاستفاده از این دادهها را برای مجرمان سایبری بسیار دشوارتر میکند.
SSL اطلاعات بین سایت و کاربران را رمزگذاری میکند و اعتماد کاربران را افزایش میدهد. برای هدایت همه ترافیک به HTTPS:
علاوه بر این، گواهینامههای SSL اعتماد کاربران را افزایش میدهند، زیرا بازدیدکنندگان میتوانند به راحتی سایت شما را به عنوان سایتی امن تشخیص دهند، به لطف نماد قفل که در نوار آدرس مرورگرشان نمایش داده میشود. علاوه بر این، داشتن SSL تأثیر مثبتی بر رتبهبندی سئو شما دارد، زیرا موتورهای جستجو مانند گوگل وبسایتهای امن را در نتایج جستجوی خود در اولویت قرار میدهند.
اجرای SSL در سایت شما تضمین میکند که همه بازدیدها به نسخه امن HTTPS وبسایت شما هدایت میشوند.
برای انجام این کار، قطعه کد زیر را به فایل .htaccess خود اضافه کنید:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
۷. غیرفعال کردن XML-RPC
فایل xmlrpc.php در وردپرس امکان ارتباط بین سایت شما و برنامههای شخص ثالث، مانند برنامههای تلفن همراه و سرویسهای خارجی را فراهم میکند. اگرچه این قابلیت میتواند مفید باشد، اما همچنین مسیری بالقوه برای سوءاستفاده هکرها ایجاد میکند. مجرمان سایبری اغلب فایل xmlrpc.php را برای انجام حملات جستجوی فراگیر، حملات DDoS (انکار سرویس توزیعشده) و سایر فعالیتهای مخرب هدف قرار میدهند. اگر از هیچ برنامه شخص ثالثی که به XML-RPC نیاز دارد استفاده نمیکنید، غیرفعال کردن دسترسی به این فایل برای افزایش امنیت سایت شما عاقلانه است.

با غیرفعال کردن دسترسی به xmlrpc.php، شما عملاً این آسیبپذیری را از بین میبرید و تضمین میکنید که هکرها نمیتوانند از این نقطه ورود برای به خطر انداختن سایت وردپرس شما استفاده کنند. این اقدام ساده، خطر دسترسی غیرمجاز و سایر فعالیتهای مخرب را به میزان قابل توجهی کاهش میدهد.
برای انجام این کار، قطعه کد زیر را به فایل .htaccess خود اضافه کنید:
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
۸. مسدود کردن اسکن نام کاربران
هکرها اغلب از اسکن نویسنده برای جمعآوری نامهای کاربری کاربران یا نویسندگان وارد شده در سایت وردپرس شما استفاده میکنند. با دانستن نامهای کاربری معتبر، میتوانند حملات جستجوی فراگیر (brute-force) را برای حدس زدن رمزهای عبور و دسترسی غیرمجاز به سایت شما انجام دهند. جلوگیری از اسکن نویسنده به محافظت در برابر این نوع حملات کمک میکند و یک لایه امنیتی به نصب وردپرس شما اضافه میکند.
مسدود کردن اسکن نویسنده گامی حیاتی در محافظت از حسابهای کاربری است، به خصوص اگر سایت شما چندین مشارکتکننده داشته باشد. این اقدام مانع از یافتن آسان نامهای کاربری توسط اسکریپتهای خودکار و مهاجمان میشود و اجرای حملات جستجوی فراگیر را برای آنها به طور قابل توجهی دشوارتر میکند.
برای انجام این کار، میتوانید قطعه کد زیر را به فایل .htaccess خود اضافه کنید:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/author/(.*)$
RewriteRule .* – [R=403,L]
۹. محافظت از فایل .htaccess
پس از تنظیم اقدامات امنیتی مختلف در فایل .htaccess، محافظت از خود فایل .htaccess در برابر دسترسی غیرمجاز ضروری است. اطمینان از ایمن ماندن فایل .htaccess بسیار مهم است زیرا حاوی قوانینی است که به حفظ یکپارچگی و امنیت سایت شما کمک میکند. اگر افراد مخرب بتوانند به این فایل دسترسی پیدا کرده و آن را تغییر دهند، میتوانند تمام اقدامات امنیتی شما را خنثی کرده و کنترل سایت شما را به دست گیرند.
برای محافظت از فایل .htaccess در برابر دسترسی غیرمجاز، میتوانید یک قانون خاص را در خود فایل اضافه کنید. این قانون از هرگونه دسترسی خارجی به فایل .htaccess جلوگیری میکند و تضمین میکند که فقط شما (و سرور شما) میتوانید محتوای آن را بخوانید یا تغییر دهید.
برای انجام این کار، قطعه کد زیر را به فایل .htaccess خود اضافه کنید:
<Files .htaccess>
Order allow,deny
Deny from all
</Files>
۱۰. مسدود کردن IPهای مشکوک و geoblocking
مسدود کردن آدرسهای IP مشکوک و اعمال محدودیت جغرافیایی میتواند با جلوگیری از دسترسی منابع مخرب، امنیت سایت وردپرس شما را افزایش دهد. این امر به ویژه در صورتی مفید خواهد بود که الگوهای ترافیکی غیرمعمول، مانند نرخ بالای درخواست از IP های خاص در زمانهای نامناسب، یا تلاشهای مکرر برای دسترسی به سایت خود از مکانهایی که به آنها سرویس نمیدهید را مشاهده کنید.
با این حال، توجه به این نکته ضروری است که حفظ لیست سیاه آدرسهای IP میتواند دست و پا گیر باشد و ممکن است در دراز مدت عملی نباشد، زیرا IP های مخرب جدید دائماً ظاهر میشوند. به جای مدیریت دستی لیستهای سیاه IP، استفاده از فایروال Atomic Security MalCare را برای محافظت خودکار و جامع در برابر ترافیک مخرب در نظر بگیرید.

برای انجام این کار، میتوانید قطعه کد زیر را به فایل .htaccess خود اضافه کنید:
<Limit GET POST>
Order Allow,Deny
Allow from all
Deny from x.x.x.x
</Limit>
نحوه ویرایش فایل .htaccess
ویرایش فایل .htaccess برای اجرای اقدامات و پیکربندیهای امنیتی مختلف در سایت وردپرس شما بسیار مهم است. دانستن روشهای مختلف موجود برای ویرایش ایمن فایل .htaccess بسیار مهم است. راهنمای جامع ما میتواند در مراحل دقیق انجام این کار به شما کمک کند.
نکته: همیشه قبل از ویرایش فایلهای سیستمی مانند .htaccess، از سایت خود یک نسخه پشتیبان کامل تهیه کنید. به این ترتیب، در صورت بروز هرگونه مشکل، میتوانید به راحتی سایت خود را بازیابی کنید.
عیبیابی
ویرایش فایل .htaccess میتواند امنیت و عملکرد سایت وردپرس شما را به میزان قابل توجهی افزایش دهد، اما خطر ایجاد خطا یا عواقب ناخواسته را نیز به همراه دارد. این بخش به شما کمک میکند تا مشکلات رایجی را که ممکن است پس از تغییر فایل .htaccess ایجاد شوند، عیبیابی کنید و نکاتی در مورد چگونگی کاهش مشکلات احتمالی ارائه میدهد.
۱. خطای ۵۰۰ سرور داخلی: این خطا معمولاً به دلیل خطاهای نحوی در فایل .htaccess رخ میدهد. تمام کدهایی را که به فایل .htaccess اضافه کردهاید، دوباره بررسی کنید تا مطمئن شوید که هیچ غلط املایی یا کاراکتر نابجایی وجود ندارد. اگر خطا همچنان ادامه داشت، سعی کنید تغییرات اخیر (#) را کامنت کنید تا خط مشکلساز را شناسایی کنید.
۲. دسترسی خودتان را مسدود کردهاید: گاهی اوقات ممکن است به طور تصادفی آدرس IP خودتان را در لیست سیاه قرار دهید. در چنین سناریوهایی، از FTP یا cPanel برای دسترسی و ویرایش فایل .htaccess استفاده کنید. خطی را که IP شما را مسدود میکند، حذف کنید. در صورت قفل شدن کامل، به یک اتصال اینترنتی متفاوت یا استفاده از VPN برای تغییر موقت آدرس IP خود فکر کنید.
۳. مسدود شدن ربات گوگل: اگر سهواً ربات گوگل یا سایر خزندههای موتور جستجو را مسدود کردهاید، ممکن است منجر به این شود که موتورهای جستجو سایت یا محتوای آن را در نتایج جستجو نمایش ندهند. مطمئن شوید که قوانین .htaccess شما رباتهای موتور جستجوی قانونی را مسدود نمیکند. میتوانید از دستورالعمل Allow from برای اجازه صریح دسترسی به ربات گوگل استفاده کنید.
# Allow Googlebot
<IfModule mod_setenvif.c>
SetEnvIfNoCase User-Agent “^Googlebot” allow_googlebot
</IfModule>
<FilesMatch “.*”>
Order Deny,Allow
Deny from all
Allow from env=allow_googlebot
</FilesMatch>
۴. هشدارهای محتوای ترکیبی: اجرای SSL برای اطمینان از اتصال ایمن به سایت شما ضروری است. با این حال، این ممکن است منجر به عدم بارگذاری برخی منابع از طریق HTTPS پس از اجرای SSL شود. اطمینان حاصل کنید که تمام لینکهای داخلی، اسکریپتها و فایلهای رسانهای برای استفاده از HTTPS بهروزرسانی شدهاند. میتوانید از افزونه Really Simple SSL برای تنظیم بارگذاری منابع از طریق HTTPS استفاده کنید.
اگر نمیتوانید مشکل را حل کنید، میتوانید فایل .htaccess را به حالت پیشفرض وردپرس برگردانید. در اینجا محتوای پیشفرض برای یک نصب معمولی وردپرس آمده است:
# Default WordPress .htaccess file
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
به همین دلیل توصیه میکنیم قبل از ایجاد هرگونه تغییر در فایلهای سیستم، همیشه از سایت خود نسخه پشتیبان تهیه کنید تا از بروز هرگونه مشکل جلوگیری شود.
نکات پایانی
فایل .htaccess میتواند راهی مؤثر برای ایمنسازی سایت وردپرس شما باشد. میتوانید قوانینی را برای کاهش آسیبپذیریها و مقابله با تهدیدات سایبری مختلف اضافه کنید. این شامل حملات جستجوی فراگیر، دسترسی غیرمجاز و سایر فعالیتهای مخرب میشود. فقط به یاد داشته باشید که قبل از ایجاد هرگونه تغییر، از فایل .htaccess خود نسخه پشتیبان تهیه کنید.
سوالات متداول
فایل .htaccess چیست؟
فایل .htaccess یک فایل پیکربندی است که توسط سرورهای وب آپاچی برای مدیریت تنظیمات سرور استفاده میشود. این فایل میتواند طیف گستردهای از رفتارهای سرور، از جمله تغییر مسیر URL، محدودیتهای دسترسی، تنظیمات امنیتی و موارد دیگر را کنترل کند. برای سایتهای وردپرس، این فایل نقش مهمی در مدیریت پیوندهای یکتا و افزایش امنیت سایت ایفا میکند.
چگونه میتوانم فایل .htaccess را با خیال راحت ویرایش کنم؟
همیشه قبل از ایجاد هرگونه تغییر، از فایل .htaccess خود نسخه پشتیبان تهیه کنید. میتوانید آن را با استفاده از FTP، File Manager سیپنل یا یک افزونه وردپرس مانند WP File Manager ویرایش کنید. برای جلوگیری از خطاهای نحوی، بهترین شیوهها را دنبال کنید و پس از ایجاد تغییرات، سایت خود را آزمایش کنید تا مطمئن شوید همه چیز به درستی کار میکند.
اگر پس از ویرایش .htaccess با خطای 500 Internal Server مواجه شدم، چه کاری باید انجام دهم؟
خطای 500 Internal Server معمولاً نشاندهنده یک مشکل نحوی در فایل .htaccess شماست. کدی را که اضافه کردهاید دوباره بررسی کنید و مطمئن شوید که هیچ غلط املایی یا کاراکتر اشتباهی وجود ندارد. اگر خطا همچنان ادامه داشت، به نسخه پشتیبان فایل .htaccess خود برگردید یا از الگوی پیشفرض .htaccess وردپرس استفاده کنید.
خطرات ویرایش دستی فایل .htaccess چیست؟
ویرایش دستی فایل .htaccess خطراتی مانند از کار افتادن سایت، مسدود شدن خودتان یا خزندههای موتور جستجو و ایجاد خطای 500 Internal Server Error به دلیل اشتباهات نحوی را به همراه دارد. همیشه قبل از ایجاد هرگونه تغییر، از فایل پشتیبان تهیه کنید و بهترین شیوهها را برای به حداقل رساندن این خطرات دنبال کنید.