⚡ چگونه می توان CORS را در Apache و Nginx فعال کرد؟ – تیم امنیت اطلاعات

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

سرصفحه CORS (Cross-Origin Resource Sharing) در همه پشتیبانی می شود مرورگرهای مدرن.

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

و CORS می تواند برای استفاده مجدد از منابع اشتراکی برنامه در سایر برنامه های وب مفید باشد.

به محض افزودن صحیح ، آن را راهنمایی می کند. مرورگر برای بارگیری برنامه از یک منبع دیگر.

شش سرصفحه سرور CORS وجود دارد که می تواند ارسال کند.

بیایید آنها را بررسی کنیم.

1 دسترسی -Control -Allow -Origin

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

این از کارت های عادی پشتیبانی می کند (*) ، و هر دامنه می تواند منابع را بارگیری کند.

آنها متر ، با این حال ، این توانایی را دارند که یک منبع خاص را حل کنند.

Apache

موارد زیر را به httpd.conf یا هر پرونده پیکربندی دیگر مورد استفاده اضافه کنید.

 تنظیم هدر دسترسی-کنترل-اجازه-مبدا "*" 

Perez

باید موارد مشابه را در سرصفحات مشاهده کنید.

و برای دسترسی به یک منبع خاص (به عنوان مثال: https://gf.dev) ، می توانید از موارد زیر استفاده کنید:

 مجموعه هدر Access-Control-Allow-Origin "https://gf.dev" 

Nginx

در اینجا مثالی وجود دارد که اجازه می دهد منشاء https://itisgood.ru شود.

موارد زیر را به بلوک سرور nginx.conf اضافه کنید یا پرونده پیکربندی مورد استفاده.

 add_header Access-Control-Allow-Origin "https: //  itisgood.ru 

2 Access-Control-Allow-Methods

مرورگر می تواند برای دسترسی به منابع ، یک یا چند روش HTTP را آغاز کنید.

ص به عنوان مثال: – GET ، PUT ، OPTIONS ، PUT ، DELETE ، POST

Apache

فقط GET و فقط POST را مجاز کنید.

 هدر اضافه کردن روش های دسترسی-کنترل-اجازه-اجازه "GET ، POST" 

Nginx [19659027] فرض کنید شما باید روش DELETE و OPTIONS را اضافه کنید ، می توانید همانطور که در زیر نشان داده شده است این کار را انجام دهید:

 add_header Access-Control-Allow-Methods "DELETE، OPTIONS"؛ 

3 Access-Control- سربرگ

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

آنها باید به طور پیش فرض کار کنند.

  • نوع محتوا
  • پذیرش
  • زبان محتوا
  • زبان-پذیرش

با این وجود ، اگر شما نیاز به افزودن گزینه سفارشی دارید ، می توانید این کار را انجام دهید.

پشتیبانی از یک یا چند عنوان دیگر.

آپاچی

بیایید می گوییم می خواهید هدرهای X-Custom-Header و X-Powered By را فعال کنید.

 هدر همیشه Head-Access-Control-All-Headers را تنظیم می کند "X-Custom-Header، X-Powered By" 

نگین

نمونه ای از افزودن هدر X-Customer-Software و X-My-Custom.

 add_header Access-Control-All-Headers "X-Custom-Software، X-My-Custom"؛ 

4 دسترسی-کنترل-قرار گرفتن در معرض-هدرها

عناوین زیر در حال حاضر در لیست امن قرار دارند.

بنابراین نیازی نیست آنها را اضافه کنید.

  • منقضی می شود
  • Pragma
  • Cache-Control
  • آخرین اصلاح شده
  • محتوا-زبان
  • محتوا-نوع

اما ، اگر به لیست غیر ایمنی نیاز دارید ، می توانید آنها را به شرح زیر حل کنید.

آپاچی

برای گسترش همه سرصفحات از یک کارت ویزیت استفاده کنید.

 هدر همیشه هدرهای دسترسی-کنترل-قرار گرفتن در معرض را تنظیم می کند "*"  

توجه: کارت های وحشی هنوز یک عنوان مجوز ارائه نمی دهد ، و اگر به یکی از آنها نیاز دارید ، باید آن را صریحاً ذکر کنید.

  هدر همیشه "اجازه نامه ، دسترسی-کنترل-قرار گرفتن در معرض" را تنظیم می کند 

Nginx

اگر می خواهید عنوان Origin را تنظیم کنید.

 add_header Access-Control-Expos-Headers "Origin"؛ 

5 Access-Control-Max-Age

آیا می دانید داده های مربوط به هدرهای Access-Control-Allow-Headers و Access-Control-Allow-Methods قابل ذخیره سازی هستند؟

در Firefox ، می توان آن را تا 24 ساعت در Chrome ذخیره کرد – به مدت 2 ساعت ( 76 +).

برای غیرفعال کردن حافظه پنهان ، می توانید مقدار -1

را رها کنید.

آپاچی

کش به مدت 15 دقیقه.

  هدر همیشه دسترسی-کنترل-حداکثر سن "900" را تنظیم می کند 

همانطور که می بینید ، این مقدار در ثانیه است.

Nginx

حافظه پنهان به مدت یک ساعت.

 add_header Access-Control-Max-Age "3600" ؛ 

6 Access-Control-Allow-Credentials

فقط یک گزینه وجود دارد – درست است.

اگر می خواهید مدارکی مانند کوکی ها ، گواهینامه های TLS ، مجوز را تهیه کنید ، این درخواست لازم است.

Apache

 هدر همیشه تنظیمات دسترسی-کنترل-اجازه-اعتبار "صحیح" 

Nginx

 add_header Access-Control-Allow-Credentials "true" را تنظیم کرد ؛ 

نتیجه گیری

امیدوارم موارد فوق به شما در پیاده سازی عنوان CORS در Apache HTTP و سرور وب Nginx کمک کند تا امنیت را افزایش دهید.