افزایش امنیت وردپرس با بالا بردن امنیت فایل .htaccess
فایل .htaccess یک فایل پیکربندی است که برای تنظیمات وب سرور استفاده میشود. این فایل به صورت مخفی در ریشه سایت شما قرار میگیرد و توسط سرور وب خوانده میشود. فرمت نام فایل به این صورت است: “.htaccess” (با نقطه در ابتدا و بدون پسوند).
فایل .htaccess قابلیت اعمال تنظیمات مختلفی بر روی سرور وب شما را داراست، از جمله:
- تنظیم مسیرها (Rewriting URLs): میتوانید با استفاده از فایل .htaccess قوانینی برای بازنویسی URLهای سایت خود تعیین کنید، به طوری که URLهای قابل خواندن توسط انسان و موتورهای جستجو برای صفحات سایت شما ایجاد شوند. این کار بهینهسازی SEO را تسهیل میکند.
- محدودیت دسترسی: میتوانید با استفاده از فایل .htaccess دسترسی به برخی از فایلها و دایرکتوریها را محدود کنید. مثلاً میتوانید قوانینی بنویسید که تنها برخی از آدرسهای IP خاص به فایلها دسترسی داشته باشند یا مسدود کنید.
- تنظیمات امنیتی: فایل .htaccess قادر است تنظیمات امنیتی مختلفی را بر روی سرور وب شما اعمال کند. به عنوان مثال، میتوانید قوانینی برای جلوگیری از حملات CSRF (Cross-Site Request Forgery) تعریف کنید. با استفاده از این قوانین، میتوانید محدودیتهایی برای اجرای درخواستهای غیرمجاز توسط کاربران تعیین کنید.
همچنین، میتوانید قوانین دسترسی HTTP (Access Control) را تنظیم کنید تا محدودیتهایی برای دسترسی به فایلها و دایرکتوریهای سرور ایجاد کنید. این میتواند شامل محدودیت دسترسی بر اساس آدرس IP، محدودیت دسترسی به فایلهای خاص، تعیین نام کاربری و رمز عبور برای دسترسی به فایلها و غیره باشد.
به علاوه، میتوانید از فایل .htaccess برای جلوگیری از دسترسی غیرمجاز به فایلهای حساس استفاده کنید. با تنظیم قوانین مناسب، میتوانید فایلهایی را که شامل اطلاعات محرمانه، پایگاه داده، فایلهای پشتیبان و غیره هستند، از دسترسی غیرمجاز محافظت کنید
توجه داشته باشید که استفاده از فایل .htaccess برای تنظیمات امنیتی بسیار حساس است و نیاز به دانش مناسب در این زمینه دارد. تغییرات ناصحیح ممکن است باعث عملکرد نامناسب سرور شود یا موجب بروز مشکلات امنیتی شود. پیش از اعمال هر تغییری در فایل .htaccess، توصیه میشود که یک پشتیبان از فایل اصلی بگیرید و با دقت اقدام کنید.
[lwptoc]
htaccess چیست؟
فایل htaccess (مخفف HyperText Access) یک فایل پیکربندی است که در سرور وب قرار دارد و به شما امکان می دهد تنظیمات مربوط به دایرکتوری ها و فایل ها را در سطح سرور تغییر دهید. این فایل قدرتمند و انعطاف پذیر است و می توانید تنظیمات امنیتی، ریدایرکت، تغییرات URL، کش، فشرده سازی و سایر قوانین و قواعد را در آن تعریف کنید.
فایل htaccess در دایرکتوری اصلی سایت یا در هر دایرکتوری دلخواهی قرار داده می شود و سرور هنگام بارگذاری هر درخواست وب، این فایل را بررسی و تنظیمات مربوطه را اجرا می کند. برای استفاده از فایل htaccess، سرور وب شما باید به طور صریح اجازه اجرای فایل htaccess را داشته باشد.
با استفاده از فایل htaccess، می توانید تغییراتی را اعمال کنید که تأثیر بزرگی بر روی عملکرد و امنیت وبسایت داشته باشد. این فایل بسیار قدرتمند است و امکانات زیادی برای شخصی سازی و پیکربندی وبسایت ارائه می دهد.
افرایش امنیت htaccess
افزایش امنیت در وردپرس با استفاده از فایل htaccess بسیار مهم است. هرچند وردپرس به طور پیش فرض تلاش میکند امنیت سیستم را حفظ کند، اما با تنظیمات اضافی در فایل htaccess میتوانید امنیت وبسایت خود را بهبود بخشید.
کاربرد فایل مهم htaccess در وردپرس
- محدود کردن دسترسی به فایل htaccess: استفاده از مجوزهای دسترسی صحیح برای فایل htaccess به شما امکان میدهد تا فقط خودتان به عنوان مالک فایل دسترسی داشته باشید و سایر کاربران فقط بتوانند آن را بخوانند.
- محدود کردن دسترسی به فایلهای حساس وردپرس: با استفاده از htaccess، میتوانید مجوزهای دسترسی به فایلهایی مانند wp-config.php و wp-login.php را محدود کنید تا از دسترسی غیرمجاز جلوگیری کنید.
- اعمال ریدایرکت امن: میتوانید با استفاده از htaccess ریدایرکتهای امن برای مسیریابی درخواستها ایجاد کنید و مانع از حملات redirect کاذب شوید.
- مسدود کردن آدرس IP مشکوک: با استفاده از htaccess میتوانید آدرس IP هایی که فعالیت مشکوکی دارند را مسدود کنید و از حملات نفوذ جلوگیری کنید.
- استفاده از قوانین Rewrite: با استفاده از قوانین Rewrite در htaccess، میتوانید URL های پویا را به URL های استاتیک و قابل فهم تر تغییر دهید و از حملات مبتنی بر URL جلوگیری کنید.
- غیرفعالسازی اجرای فایلهای PHP در دایرکتوری آپلود: با استفاده از htaccess، میتوانید اجازه اجرای فایلهای PHP در دایرکتوری آپلود را غیرفعال کنید تا از حملات احتمالی جلوگیری کنید.
- محدود کردن تعداد درخواستها: با استفاده از htaccess میتوانید تعداد درخواستهایی که یک کاربر میتواند به سرور ارسال کند
- اعمال محدودیتهای زمانی: با استفاده از htaccess میتوانید محدودیتهای زمانی برای دسترسی به وبسایت تعیین کنید، مانند تعداد ساعاتی که وبسایت در دسترس باشد یا محدود کردن دسترسی به ساعات خاصی از روز.
- مسدود کردن باتها و رباتهای نفوذی: با استفاده از htaccess، میتوانید باتها و رباتهایی که به صورت نفوذی و مشکوک روی سایت شما عمل میکنند را مسدود کنید.
- اعمال فیلترهای HTTP: با استفاده از htaccess میتوانید فیلترهای HTTP مانند فیلترهای User-Agent و Referer را تعریف کنید تا از درخواستهای مشکوک و غیرمعتبر جلوگیری کنید.
- استفاده از SSL/TLS: با استفاده از htaccess میتوانید تنظیماتی برای فعالسازی SSL/TLS و استفاده از اتصال امن برای وبسایت خود اعمال کنید.
- محدود کردن دسترسی به فولدرها و فایلها: با استفاده از htaccess میتوانید مجوزهای دسترسی به فولدرها و فایلهای مشخص را تعیین کنید و از دسترسی غیرمجاز جلوگیری کنید.
- استفاده از مدیریت مجوزها: با استفاده از htaccess میتوانید مجوزهای دسترسی به فایلها و فولدرها را به صورت دقیق تنظیم کنید و از دسترسی غیرمجاز به فایلهای حساس جلوگیری کنید.
- محدود کردن دسترسی به wp-admin: با استفاده از htaccess میتوانید دسترسی به پوشه wp-admin را محدود کنید و فقط آیپیهای خاصی را به آن دسترسی دهید. این اقدام میتواند از حملات نفوذی که به صورت مستقیم به بخش مدیریت وردپرس انجام میشوند، جلوگیری کند.
- مسدود کردن حملات Brute Force: با استفاده از htaccess میتوانید محدودیتهایی برای تعداد تلاشهای ورود نا موفق به حساب کاربری وردپرس اعمال کنید. این اقدام میتواند از حملات Brute Force در برابر ورود به وردپرس جلوگیری کند.
- مسدود کردن حملات XML-RPC: با استفاده از htaccess میتوانید دسترسی به XML-RPC را مسدود کنید یا محدودیتهایی برای استفاده از آن تعیین کنید. این اقدام میتواند از حملات DDoS و حملات نفوذی که از طریق XML-RPC صورت میگیرند، جلوگیری کند.
- ایجاد قوانین حفاظت از دایرکتوریها: با استفاده از htaccess میتوانید قوانینی برای حفاظت از دایرکتوریهای حساس وردپرس مانند wp-content و wp-includes اعمال کنید. این اقدام میتواند از دسترسی غیرمجاز به فایلها و فولدرهای حساس جلوگیری کند.
- غیرفعالسازی اجرای فایلهای مشکوک: با استفاده از htaccess میتوانید قوانینی برای غیرفعالسازی اجرای فایلهای با پسوندهای خطرناک و مشکوک مانند .phps و .phar اعمال کنید.
- مسدود کردن Hotlinking: با استفاده از htaccess میتوانید مانع از Hotlinking یا استفاده غیرمجاز از منابع وبسایت شما توسط دیگر وبسایتها شوید. میتوانید قوانینی را تعریف کنید تا در صورت درخواست منابع شما از دامنههای غیرمجاز، عملکردی مشخص کنید (مانند نمایش تصویر جایگزین یا ارسال به یک صفحه خطا).
- تنظیم تایماوت: با استفاده از htaccess میتوانید تایماوت زمانی برای درخواستها تنظیم کنید. این اقدام میتواند از حملات DoS (سرویس غیرمجاز) و DDoS (سرویس غیرمجاز توزیعی) جلوگیری کند.
- استفاده از فایروال: با استفاده از htaccess میتوانید قوانین فایروال را تعریف کنید تا ترافیک ورودی را فیلتر کنید و از حملات نفوذی و تلاشهای مستمر برای دستیابی به وبسایت جلوگیری کنید.
- مخفی کردن نسخه وردپرس: با استفاده از htaccess میتوانید اطلاعات مربوط به نسخه وردپرس خود را مخفی کنید و از افشای اطلاعات مربوط به نسخه وردپرس در صورت بروز آسیبپذیریها جلوگیری کنید.
- ایجاد فایروال ورود: با استفاده از htaccess میتوانید یک فایروال ورود بسازید تا از درخواستهای نامعتبر و مشکوک برای ورود به صفحه ورود وردپرس جلوگیری کنید.
- بکاپگیری منظم: از بکاپگیری منظم از فایل htaccess مطمئن شوید تا در صورت بروز هرگونه مشکل یا اشتباه، بتوانید به نسخه قبلی بازگردید.
خب 24 کاربرد مهم و اساسی این فایل رو به شما عزیزان توضیح دادیم حالا بریم که این فایل مهم و البته کاربردی در وردپرس رو بهینه کنیم تا بهترین امنیت رو برای سایت وردپرسیمون رقم بزنیم 🙂
فایل “.htaccess” یک فایل تنظیمات وب سرور است که اجازه میدهد تا انواع مختلفی از تنظیمات امنیتی و دسترسی به منابع وب را تنظیم کنید. در زیر چندین کد کاربردی برای افزایش امنیت با استفاده از فایل “.htaccess” آورده شده است:
محدود کردن دسترسی به فایل .htaccess
<Files .htaccess>
Order allow,deny
Deny from all
</Files>
این کد جلوگیری میکند که دیگران به فایل .htaccess شما دسترسی پیدا کنند.
محدود کردن دسترسی به فایلهای مهم
<FilesMatch "^importantfile\.php$">
Order allow,deny
Deny from all
</FilesMatch>
این کد مجوز دسترسی به فایل “importantfile.php” را به تمامی کاربران ممنوع میکند.
محدود کردن دسترسی به فولدر خصوصی
<Directory /path/to/private/folder>
Options -Indexes
AllowOverride None
Order allow,deny
Deny from all
</Directory>
این کد دسترسی به یک پوشه خصوصی را محدود میکند و اجازه نمیدهد فهرست محتویات آن پوشه نمایش داده شود.
فعال کردن HTTPS با استفاده از HSTS
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
این کد با فعال کردن HTTP Strict Transport Security (HSTS) از حملات MITM و حملات تزریق نشانه امنیتی جلوگیری میکند.
محدود کردن دسترسی به ترمینال وب (مانند phpMyAdmin)
<Location /phpMyAdmin>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
این کد تنها به IP آدرس 127.0.0.1 (localhost) اجازه دسترسی به مسیر “/phpMyAdmin” را میدهد.
مسدود کردن دسترسی به فایلهای حساس با پسوند خاص
<FilesMatch "\.(htaccess|htpasswd|ini|phps|log|sh|bak|inc|swp|dist|dll|exe)$">
Order allow,deny
Deny from all
</FilesMatch>
این کد جلوگیری میکند که کاربران به فایلهای با پسوندهای حساس دسترسی پیدا کنند.
تغییر نام فایل “.htaccess” به چیز دیگر
<Files .htaccess>
order allow,deny
deny from all
</Files>
این کد به عنوان یک لایه اضافی امنیتی، تغییر نام فایل “.htaccess” را به چیز دیگری نیز میپیشنهادد.
تغییر نام فایل “wp-config.php” در WordPress
اگر از WordPress استفاده میکنید، میتوانید نام فایل “wp-config.php” را به چیز دیگری تغییر دهید تا حفاظت بیشتری داشته باشید. این کار به وسیله `.htaccess` انجام میشود.
<Files wp-config.php>
order allow,deny
deny from all
</Files>
و برای تغییر نام فایل:
<IfModule mod_rewrite.c>
RewriteRule ^wp-config.php$ your-new-config-file-name.php [L]
</IfModule>
برای جلوگیری از ورود آیپی خاص به وبسایت خود، میتوانید از فایل “.htaccess” استفاده کنید. این کار با استفاده از دستورات مربوط به Apache با استفاده از “Deny” انجام میشود. در زیر، نحوه مسدود کردن یک آیپی خاص در فایل “.htaccess” توضیح داده شده است:
جلوگیری از ip خاص به سایت شما
order allow,deny
deny from 123.456.789.0
allow from all
در اینجا “123.456.789.0” آدرس آیپی مورد نظر شماست. شما میتوانید یک یا چند آدرس آیپی را به این صورت به فایل اضافه کنید.
به عنوان مثال، اگر میخواهید از چندین آدرس آیپی جلوگیری کنید، میتوانید این دستورات را به صورت زیر تغییر دهید:
order allow,deny
deny from 123.456.789.0
deny from 987.654.321.0
allow from all
با اعمال این تغییرات، آیپیهای مشخص شده دسترسی به وبسایت شما را نخواهند داشت. توجه داشته باشید که باید آدرسهای آیپی مورد نظر خود را به جای “123.456.789.0” و “987.654.321.0” قرار دهید.
پس از ویرایش فایل “.htaccess”، آن را ذخیره کنید و تغییرات را اعمال کنید. همچنین، از توجه داشته باشید که این روش فقط جلوی دسترسی آیپیهای مشخص شده به منابع وبسایت میانجامد و نه کاملاً جلوی تلاشهای نفوذی. برای افزایش امنیت بهتر وبسایت خود، نیاز به استفاده از روشهای دیگری مانند فایروالها و سیستمهای مدیریت امنیتی دارید.
توجه داشته باشید که برای اعمال تغییرات در فایل “.htaccess”، شما باید دسترسی به ویرایش این فایل را داشته باشید. همچنین، هر تغییری که انجام میدهید، باید با دقت و توجه به نیازهای وبسایت خود انجام شود تا از اختلال در عملکرد وبسایت جلوگیری شود.
افزایش امنیت پوشه wp-includes
استفاده از فایل .htaccess: از فایل .htaccess
در داخل پوشه wp-includes
برای جلوگیری از دسترسی به فایلها و پوشههای این پوشه استفاده کنید. این فایل را به صورت زیر تنظیم کنید:
# Deny all access to wp-includes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>
# Block the include-only files.
<FilesMatch "\.(php|php\.)">
Order allow,deny
Deny from all
Satisfy all
</FilesMatch>
جلوگیری از نمایش لیستی فایلهای سایت
برای جلوگیری از نمایش لیستی از فایلهای یک دایرکتوری در وبسرور Apache، شما میتوانید از دستورات مخصوص فایل .htaccess استفاده کنید. این دستورات به عنوان “تعیین نقش فهرست” (Directory Listing) شناخته میشوند. برای جلوگیری از نمایش لیستی از فایلها در یک دایرکتوری خاص، میتوانید از یکی از روشهای زیر استفاده کنید:
استفاده از دستور Options:
به فایل .htaccess در دایرکتوری مورد نظر این کد را اضافه کنید:
Options -Indexes
این دستور موجب غیرفعال شدن نمایش فهرست محتویات دایرکتوری میشود.
استفاده از دستور IndexIgnore:
با استفاده از دستور IndexIgnore, میتوانید فایلهای خاصی را از نمایش در فهرست دایرکتوری مستثنی کنید. به عنوان مثال:
IndexIgnore *.php *.html
این دستور موجب میشود که فایلهای با پسوند .php و .html در فهرست دایرکتوری نمایش داده نشوند.
در این مقاله، من تعدادی از راهکارها و دستورات “.htaccess” برای افزایش امنیت وبسایت شما را مورد بررسی قرار دادم. این دستورات به شما امکان میدهند تا از ورود غیرمجاز، محدود کردن دسترسی به فایلها و پوشههای حساس، جلوگیری از نمایش فهرست محتویات دایرکتوری، و موارد مشابه جلوگیری کنید.
با اجرای این تغییرات و دستورات مرتبط با فایل “.htaccess”، میتوانید وبسایت خود را از نقاط ضعف امنیتی مختلف محافظت کرده و ریسکهای امنیتی را به حداقل برسانید. با این حال، توجه داشته باشید که افزایش امنیت وبسایت یک فرآیند مداوم است و نیازمند پیگیری و بهروزرسانی منظم است. همچنین، بهتر است همواره از سرویسها و فناوریهای امنیتی دیگر نیز بهرهبرداری کنید تا وبسایت خود را در مقابل تهدیدهای امنیتی مختلف محافظت کنید.
خیلی خفن بود مرسی