خانه / آموزش وردپرس / آموزش کامل تنظیمات فایل htaccess برای افزایش امنیت وردپرس

آموزش کامل تنظیمات فایل htaccess برای افزایش امنیت وردپرس

تنظیمات فایل htaccess

ویرایش و تنظیمات فایل htaccess ، یکی از راههای قدرتمند ومهم برای ویرایش تنظیمات سرور جهت افزایش امنیت و کارایی سایت های وردپرسی است.

در سیستم های تحت وب که عموما با زبان برنامه نویسی html و php نوشته شده اند و روی سرور لینوکس میزبانی می شوند، برای پیکربندی دایرکتوری ها و فایل ها روی وب سرور آپاچی از فایل htaccess. کمک گرفته می شود.

زمانی که یک فایل htaccess. را در یک دایرکتوری قرار می‌دهیم این فایل توسط وب سرور apache شناسایی و اجرا می‌شود. یک فایل htaccess. می‌تواند به وب سرور بگوید که چطور انواع مختلف اطلاعات را نمایش دهد و چگونه به درخواست‌های متعدد HTTP رسیدگی کند. این فایل در زمان عدم دسترسی به root سرور برای کنترل آپاچی بسیار مفید است. همچنین یکی از راه های تنظیم سرور برای افزایش امنیت در وردپرس است.

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

  • کنترل ریدایرکت
  • کنترل دسترسی فیزیکی به فایلها و پوشه ها
  • کنترل نمایش خطاهای Apache
  • تنظیمات URL Rewrite
  • مسدود کردن یک یا چند IP خاص یا یک رنج IP
  • گذاشت پسورد بر روی پوشه ای خاص
  • تنظیمات کش و Expire Date آن
  • اعمال برخی تغییرات در تنظیمات پیش فرض PHP، MySQL و Apache
  • جلوگیری از نمایش تمامی فایلها یا یک یا چند فایل با پسوندی خاص
  • انتقال صفحات به صفحه ای خاص
  • معرفی یک Default Document در پوشه ای خاص
  •  تنظیم Default Charset

تنظیماتی که در فایل htaccess. قرار داده می شود بر روی پوشه جاری و زیر پوشه های آن اعمال می گردد و با قرار دادن یک فایل htaccess. دیگر در زیر پوشه ای خاص تنظیمات پوشه والد نقض می شود.

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

به عنوان مثال با تنظیمات فایل htaccess برای افزایش امنیت می توانید ریدایرکت ها را مدیریت کرده یا دسترسی خارجی و غیرمجاز به فایل های مهم را ممنوع کنید . کارهای پیچیده تر مثل اضافه کردن پسورد به پوشه ها یا جلوگیری از قرار دادن تصاویر سایت شما در وب سایت های دیگر نیز از طریق ویرایش فایل htaccess. امکان پذیر است .

در این مقاله به صورت جامع و کامل نحوه تنظیمات فایل htaccess برای افزایش امنیت را بررسی می کنیم.

محتویات فهرست

فایل htaccess. چیست و در کجا قرار دارد ؟

برای پیکربندی تنظیمات فایل htaccess برای افزایش امنیت در وردپرس، ابتدا باید به این فایل دسترسی پیدا کنید. این فایل در پوشه public_html یا پوشه root سرور سایت شما قرار دارد.

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

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

چگونه فایل htaccess. را ایجاد کنید؟

ممکن است شما داخل کنترل پنل هاست خود فایل htaccess. را نداشته باشید. در وردپرس، این فایل با فعال بودن و ویرایش تنظیمات مربوط به پیوندهای یکتا به صورت خودکار اضافه می شود . برای انجام این کار باید در پیشخوان وردپرس به قسمت تنظیمات » پیوندهای یکتا مراجعه کنید.

تنظیمات فایل htaccess

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

روش دیگری که برای ایجاد فایل htaccess. وجود دارد به این صورت است که یک ویرایشگر متنی مانند notepad را باز کنید و محتوای فایل htaccess. را داخل آن وارد کرده و با نام htaccess. آن را ذخیره کنید. سپس این فایل را از طریق کنترل پنل هاست یا FTP client به سرور خود آپلود کنید.

چگونه فایل htaccess. را ویرایش کنید؟

در صورتیکه کنترل پنل هاست شما  cpanel باشد، این کنترل پنل به صورت پیش فرض فایل های مخفی را نمایش نمی دهد، بنابراین جهت نمایش فایل های مخفی بصورت زیر اقدام نمایید:

در پوشه File Manager در گوشه بالا سمت راست صفحه بر روی دکمه Settings کلیک کنید تا پنجره پاپ آپ مربوط به تنظیمات File Manager نمایش داده شود.

تنظیمات فایل htaccess

در پنجره پاپ آپ باز شده تیک گزینه Show Hidden Files را بزنید و روی save کلیک کنید.

 پس از ذخیره می‌توانید وارد پوشه  public_html شوید و فایل htaccess. را مشاهده نمایید. با راست کلیک کردن بر روی فایل htaccess. می توانید آن را ویرایش کنید.

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

WP Htaccess Editor بهترین افزونه برای ویرایش htaccess. از پیشخوان وردپرس است. ویژگی عالی این افزونه این است که در صورت ایجاد مشکل، به شما این امکان را می دهد که یک نسخه پشتیبان را بازگردانی کنید. این افزونه رایگان است و میتوانید آن را از مخزن وردپرس دانلود کنید.

افزونه دیگری که قابلیت ویرایش htaccess. را دارد افزونه Yoast SEO است. Yoast SEO مشهورترین و یکی از بهترین افزونه های سئو وردپرس است. برای استفاده از این قابلیت افزونه Yoast SEO باید نسخه پرمیوم آن را داشته باشید. سپس در منوی اصلی به قسمت tools و File Editor بروید.

محتویات فایل htaccess. به صورت پیش فرض چیست؟

کد زیر به صورت پیشفرض در نسخه های جدید وردپرس قرار دارد. می توانید این کد را کپی کرده و در فایل htaccess. ی که ایجاد کرده اید پیست کنید.

# 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 برای افزایش امنیت

۱-  جلوگیری از دسترسی به فایل های مهم

فایل wp-config.php برای اعمال کانفیگ بر روی وردپرس می باشد و مهم ترین اطلاعات سایت مانند اطلاعات دیتابیس سایت در آن قرار دارد و اگر شخصی به آن دسترسی پیدا بکند می تواند سایت شما را براحتی هک کند.

شما می توانید تنظیمات فایل htaccess را به گونه ای انجام دهید که این فایل و فایل های مهم دیگر مانند php.ini و نیز خود htaccess. از دسترس خارج شود.

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

    <FilesMatch "^.*(error_log|wp-config\.php|php.ini|\.[hH][tT][aApP].*)$">
    Order deny,allow
    Deny from all
    </FilesMatch>

در صورت لزوم نام فایل php.ini را درست کنید (ممکن است php5.ini یا php7.ini باشد). اطمینان حاصل کنید که کدها را خارج BEGIN WordPress# و END WordPress# قرار می دهید. هر کدی داخل این فضا توسط وردپرس ویرایش می شود و ممکن است تغییرات شما اعمال نشود.

اگر می خواهید فقط مدیریت سایت به فایل wp-config.php دسترسی داشته باشد. کافی است کد زیر را وارد کنید.

# Protects wp-config
<Files wp-config.php>
Order Allow,Deny
 Allow from xx.xx.xx.xxx
Deny from all
</Files>

در کد بالا، خط Allow from xx.xx.xx.xxx  به جای xx.xx.xx.xxx آدرس IP خودتان را وارد کرده و محتویات فایل htaccess. در وردپرس را بروز کنید.

۲-  تنظیمات فایل htaccess برای جلوگیری از دسترسی به فایل های PHP

 شما می توانید با اعمال کد زیر، اجازه دسترسی به فایل های PHP و تزریق بدافزارها در آنها را به دیگران ندهید.

    RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php
    RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/
    RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L]
    RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php
    RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/
    RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]

۳-  جلوگیری از اجرا شدن فایل های PHP

یکی از مکانهایی که هکرها برای آپلود بدافزارها از آن استفاده می کنند، فایل wp-content/uploads است. اگر هکر موفق به هک کردن سایت شما شود می توانید دسترسی او به فایل wp-content/uploads را ببندید و مانع از از اجرای کدهای بد در سایت خود شوید.

برای این کار کافی است قطعه کد زیر را به فایل htaccess. اضافه کنید:

    <Directory "/var/www/wp-content/uploads/">
    <Files "*.php">
    Order Deny,Allow
    Deny from All
    </Files>
    </Directory>

۴- تنظیمات فایل htaccess برای غیرفعال کردن تزریق کدهای مخرب

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

    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]

۵- افزایش امنیت پوشه wp-includes

پوشه 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>

نگران فایل های قالب و افزونه های سایت خود نباشید. این فایل ها در محل دیگری قرار دارند.

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

۶- ایجاد محدودیت در دسترسی به بخش مدیریت وردپرس

شما می توانید تنظیمات فایل htaccess. را به گونه ای پیکربندی کنید که صفحه لاگین وردپرس شما محدود به IP های خاصی باشد. این کار مخصوص کسانی است که از آی پی ثابت استفاده می کنند. برای انجام آن کد زیر را کپی کرده و در فایل htaccess. پیست کنید.

    ErrorDocument 401 default
    ErrorDocument 403 default
    <Files wp-login.php>
    Order deny,allow
    Deny from all
    Allow from 198.101.159.98
    </Files>

آدرسهای IP که در کد بالا به عنوان نمونه قرار داده شده است را با آدرس های مدنظر خودتان عوض کنید. می توانید آدرسهای دیگری را با کپی و پیست کردن خط Allow from … اضافه کنید. هرکس غیر از آدرسهای IP مشخص شده در این کد به صفحه خطای 404 ارجاع داده می شود.

۷-  تنظیمات فایل htaccess برای قفل کردن بعضی از آدرسهای IP

به همین روش می توانید بعضی از آدرسهای IP که سعی دارند کارهای خرابکارانه در سایت شما انجام دهند را بلاک کنید. اگر متوجه چنین چیزی شدید (به عنوان مثال از لاگ های سرور) با اضافه کردن کد زیر به فایل htaccess. می توانید آنها را بلاک کنید. آدرسهای IP که در کد زیر به عنوان نمونه قرار داده شده است را با آدرس های مدنظر خودتان عوض کنید.

    order allow,deny
    deny from 456.123.8.9
    allow from all

۸-  جلوگیری از نمایش پوشه ها (Directory Browsing)

به صورت پیش فرض همه بازدیدکنندگان می توانند پوشه های هر سایت وردپرسی را بررسی کرده و فایل های آن را مشاهده کنند. کافی است وارد آدرس your-site.com/wp-content/uploads شوند. لیست کاملی از فایل ها و پوشه های شما در آنجا قابل مشاهده است.

تنظیمات فایل htaccess

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

Options All -Indexes

 ۹-  تنظیمات فایل htaccess برای افزایش امنیت پوشه wp-includes

پوشه wp-includes مکان قرارگیری فایل های مهم وردپرس است . با جلوگیری از دسترسی های غیرمجاز به این پوشه ، می توانید جلوی سو استفاده های احتمالی از محتویات آن را بگیرید .

برای افزایش امنیت پوشه wp-includes کافی است کد زیر را در فایل htaccess. قرار دهید .

<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>

۱۰- تنظیمات فایل htaccess برای جلوگیری از مشاهده اطلاعات کاربران با ID آنها

وقتی یک بازدیدکننده وارد آدرس your-site.com/?author=1 سایت شما شود ، به صفحه اطلاعات و نوشته های کاربری که دارای شناسه کاربری یا ID ۱ است منتقل می شود . این صفحه شامل نام کاربری است که کاربر با آی دی ۱ دارد .

بازدیدکننده با این روش به راحتی می تواند نام کاربری کلیه کاربرهای سایت شما را پیدا کند . این روش با عنوان username enumeration شناسایی می شود .

اگر هکر نام کاربری کاربران سایت را پیدا کند، تنها مورد دیگری که نیاز است پیدا کند، رمز عبور است .

با قرار دادن کد زیر در فایل htaccess. ، می توانید جلوی مشاهده اطلاعات کاربران با آی دی آن ها را بگیرید.

RewriteCond %{QUERY_STRING} author=d
RewriteRule ^ /? [L,R=301]

۱۱- الزامی کردن SSL

این موضوع که گوگل به وب سایت های امن رنکینگ بالاتری می دهد نشان دهنده اهمیت استفاده از گواهینامه SSL برای وب سایت ها است. داشتن گواهینامه SSL نه تنها رنکینگ سایت ها را افزایش می دهد بلکه نقش مهمی در تأمین امنیت وب سایت ها در برابر سرقت اطلاعات آنها ایفا می کند. برای کسب اطلاعات بیشتر درباره گواهی نامه SSL و چگونگی فعال کردن آن برای وب سایت وردپرسی خود به مقاله آموزش نصب SSL در وردپرس مراجعه کنید.

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

SSLOptions +StrictRequire
SSLRequireSSL
SSLRequire %{HTTP_HOST} eq "www.you-site.com"
ErrorDocument 403 https://www.your-site.com

فراموش نکنید که مقادیر www.your-site.com موجود در کد بالا را با آدرس URL خود جایگزین کنید.

۱۲-  تنظیمات فایل htaccess برای جلوگیری از سرقت تصاویر (Image Hot Linking) در وردپرس

وقتی یک بازدیدکننده آدرس تصویر شما را کپی کرده و به جای آپلود آن در سایت خود ، از آن استفاده می کند در واقع از پهنای باند شما سوءاستفاده می نماید . به این حالت hot linking می گویند. برای جلوگیری از Hotlinking (سرقت تصاویر) در وردپرس راه های زیادی وجود دارد که یکی از آنها استفاده از فایل htaccess. است.

;کافی است کد زیر را در فایل htaccess. قرار دهید.

RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} 
!^http://(www.)?your-site.com/.*$ [NC] RewriteRule .(gif|jpg)$ 
http://www.your-site.com/hotlink.gif [R,L]

قسمت your-site.com در خط ۲ را با آدرس سایت خود جایگزین کنید . همچنین مقدار http://www.your-site.com/hotlink.gif موجود در خط ۳ را با آدرس تصویری که می خواهید از آن محافظت نمایید جایگزین کنید .

۱۳-  جلوگیری از دزدیده شدن فایل های زبان قالب ها و افزونه ها

برای این کار کافی است کد زیر را در فایل htaccess. قرار دهید. با این کار کلیه دسترسی های خارجی و غیر مجاز به فایل های زبان پوسته ها و افزونه ها ممنوع می شود.

<Files *.po>
deny from all
</Files>
<Files *.mo>
deny from all
</Files>

امیدواریم این آموزش مورد توجه و استفاده شما قرار گرفته باشد. آیا کدهای دیگری می شناسید که در تنظیمات فایل htaccess مورد استفاده قرار گیرد و باعث افزایش امنیت وب سیات وردپرسی تان شود؟ تا چه حد در برقراری امنیت به شما کمک کرده است؟دیدگاه های خود را با ما در میان بگذارید.

امتیاز شما به این نوشته...
پنج ستاره بالاترین رای می باشد

درباره ی مینا قدسی

مطلب پیشنهادی

بهترین افزونه چند زبانه کردن سایت

بهترین افزونه های چند زبانه کردن و ترجمه سایت وردپرس

اگر می خواهید محتواها و مطالب سایت خود را در بیش از یک زبان منتشر …

۴ دیدگاه

  1. خیلی ممنون

    عالی بود

  2. مرجع دستورات فایل .htaccess رو از کجا میشه دانلود کرد؟

    • باید به سایت آپاچی که وب سرور متعارف سایت های php مانند وردپرس هستش، سر بزنید…
      ولی من برای شما آدرس دقیق رو قرار میدم که با htaccess و دستورات و کلیات اون آشنا بشید…

      https://www.askapache.com/htaccess

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *