پارتیان
پارتیان ابتکار پایدارپایگاه دانشجزئیات مقاله

پایگاه دانش

Rewriting and Redirecting

۹ آبان ۱۴۰۲
0
0
3

عملیات Rewrite و Redirect بر روی یک Request یا Response می تواند به دلایل مختلفی انجام پذیرد. مشابه با پنهان کردن پیام مربوط به یک خطا، URL Rewriting می تواند از به نمایش در آمدن و افشای تکنولوژی و ساختار وب سایت برای کاربران جلوگیری کند. به عنوان مثال زمانی که از یک صفحه ی وب بازدید می کنید احتمالا URL مربوطه به شکل زیر می باشد:

http://www.example.com/wordpress/?feed=rss2

دانستن بعضی از موارد از طریق URL از قبیل نام فایل، این که آیا وب سایت مورد نظر از PHP استفاده می کند، نوع پایگاه داده مربوطه و نام پارامترها، به سادگی می تواند به یک هکر جهت طراحی یک حمله کمک کند. بوسیله ی Rewrite کردن URL علاوه بر خوانا تر کردن آن برای کاربر، جزیئات می تواند مخفی شود:

http://www.example.com/rss2

علاوه بر دلایل امنیتی، عملیات Rewrite یا Redirect می تواند با اهدافی چون زیبا سازی یا تجاری نیز انجام شود. به عنوان مثال موسسات مالی می توانند بطور شفاف مشتریانی که درخواست آن ها از نوع HTTP است را جهت تامین امنیت، تایید اعتبار و انجام معاملات Redirect کنند:

http://bank.example.com/login -----------------> https://bank.example.com/login

از دیگر دلایل استفاده از عملیات Rewrite یا Redirect می توان به موارد زیر اشاره کرد:

  • در حین تعمیر ویندوز سرور، درخواست ها می توانند به یک سرور دیگر Redirect شوند.
  • مشتریان بین المللی می توانند از  URL های سراسری استفاده کنند بدون نیاز به اینکه تنظیماتی بر روی سرور جهت پاسخ دادن به HTTP Virtual Host Name های اضافه، انجام شود.
  • ایجاد URL های کوتاه تر همراه با عبارت های آسان جهت بخاطر سپردن و فرمت هایی که فهمیدن و بخاطر سپردن آن ها توسط مشتریان راحت تر است.

Rule های مربوط به URL Rewriting می توانند موارد زیر را انجام دهند:

  • Redirect کردن درخواست های از نوع HTTP به HTTPS
  • Rewrite کردن URL در Header مربوط به یک HTTP Request
  • Rewrite کردن فیلد Host در Header مربوط به یک HTTP Request
  • Rewrite کردن فیلد Referer در Header مربوط به یک HTTP Request
  • Redirect کردن درخواست ها به یک وب سایت دیگر
  • فرستادن پیام 403Forbidden در پاسخ به یک HTTP Request
  • Rewrite کردن HTTP Location در Header مربوط به یک Redirect Response که از سمت وب سرور  فرستاده می شود.
  • Rewrite کردن بدنه ی یک HTTP Response که از سمت وب سرور فرستاده می شود.

تنظیمات مربوط به ایجاد یک Rewriting/Redirection Rule

از منوی سمت چپ به مسیر  Application Delivery > URL Rewriting رفته و از نوار بالای صفحه بر روی گزینه ی URL Rewriting Rule کلیک کرده وسپس گزینه ی Create New را انتخاب کنید.

Rewriting and Redirecting 9

نکته:

  • برای فیلد Name یک نام منحصر بفرد انتخاب کرده تا در دیگر بخش های تنظیمات بتوانید به راحتی از آن استفاده کنید. در انتخاب نام مورد نظر از Space یا کاراکتر های خاص استفاده نکنید. همچنین حداکثر طول این نام باید 35 کاراکتر باشد.
  •  فیلد Action Type دارای دو گزینه می باشد:
  1. Request Action: با انتخاب این گزینه می توانید مشخص کنید این Rule جهت Rewrite کردن HTTP Requests ای که از سمت کاربران فرستاده می شود، استفاده شود.
  2. Response Action: با انتخاب این گزینه می توانید مشخص کنید این Rule جهت Rewrite کردن HTTP Responses ای که از سمت وب سرور فرستاده می شود، استفاده شود.
  • اگر گزینه ی Request Action را برای فیلد Action Type انتخاب کنید، یک فیلد دیگر به نام Request Action نیز جهت تنظیمات خواهید داشت این فیلد دارای گزینه های زیر می باشد:
  1. Rewrite HTTP Header
  2. Redirect (301 Permanently) or Redirect (302 Temporary)
  3. Send 403 Forbidden
  4. Rewrite HTTP Body
  5. Rewrite HTTP Location

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

Rewrite HTTP Header: با انتخاب این گزینه بخش یا بخش هایی از Header در HTTP Request، قبل از فرستاده شدن به وب سرور Rewrite می شوند.

Rewriting and Redirecting 8

نکته:

  • Host: بعد از فعال کردن این گزینه باید یک Host Name به عنوان مثال asstore.example.com و یا یک IP Address را برای فیلد مربوطه در نظر بگیرید. اگر قصد جایگزینی مقدار فیلد Host در Header مربوط به HTTP Request را دارید این گزینه را فعال کنید. در نتیجه درخواست ها به این Web Host فرستاده خواهند شد.
  • Using Physical Server: با فعال کردن این گزینه، مقدار FortiWeb_PSERVER در فیلد Host قرار می گیرد. زمانی که یک درخواست فرستاده می شود، دستگاه FortiWeb مقدار FortiWeb_PSERVER را جایگزین IP Address مربوط به سروری که درخواست را فرستاده می کند. از این گزینه زمانی استفاده می کنید که گزینه ی Deployment Mode در Server Policy بر روی Server Balance یا HTTP Content Routing قرار دارد.
  • URL: با فعال کردن این گزینه باید یک String به عنوان مثال /catalog/item1 را برای فیلد مربوطه وارد کنید. اگر قصد جایگزینی مقدار URL مربوط به HTTP Request را دارید این گزینه را فعال کنید. مقدار در نظر گرفته شده برای این فیلد نباید شامل نام Web Host و یا پروتکل شود.
  • Referer: با فعال کردن این گزینه باید یک URL به عنوان مثال http://www.example.com/index را برای فیلد مربوطه وارد کنید. اگر قصد Rewrite کردن مقدار فیلد Referer در HTTP Header را دارید این گزینه را فعال کنید. این گزینه تنها زمانی جهت تنظیم فعال می باشد که گزینه ی Rewrite HTTP Header را برای فیلد Request Action انتخاب کرده باشید.
  • Using Physical Server: با فعال کردن این گزینه، مقدار FortiWeb_PSERVER در فیلد Referer قرار می گیرد. زمانی که یک درخواست فرستاده می شود دستگاه FortiWeb این مقدار را جایگزین IP Address مربوط به سروری که درخواست را فرستاده می کند. از این گزینه زمانی استفاده می کنید که گزینه ی Deployment Mode در Server policy بر روی Server Balance یا HTTP Content Routing قرار دارد.
  • Header Field Name: با فعال کردن این گزینه باید نام فیلد Header ای که شما قصد وارد کردن آن در یک Request را دارید، در نظر بگیرید. به عنوان مثال Myheader
  • Header Field Value: با فعال کردن این گزینه باید فیلد Header ای که در Header Field Name وارد کردید را مقدار دهی کنید. به عنوان مثال 123. بنابراین یک Header به صورت Myheader:123 در HTTP Request وارد خواهد شد.

Redirect (301 Permanently) - Redirect (302 Temporary): با انتخاب یکی از دو گزینه ی فوق باید در فیلد Location یک URL وارد کنید. به عنوان مثال http://www.example.com/new-url. از این URL جهت Redirect کردن Response توسط دستگاه FortiWeb استفاده می شود.

Rewriting and Redirecting 7

Send 403 Forbidden: با انتخاب این گزینه یک پاسخ با محتوی 403 Forbidden به سمت کاربر فرستاده می شود.

Rewriting and Redirecting 6

  • اگر گزینه ی Response Action را برای فیلد Action Type انتخاب کرده اید، یک فیلد دیگر به نام Response Action نیز جهت تنظیمات خواهید داشت این فیلد دارای گزینه های زیر می باشد:
  1. Rewrite HTTP Body
  2. Rewrite HTTP Location

Rewrite HTTP Body: با انتخاب این گزینه در فیلد Replacement باید یک String وارد کنید. محتوی این String در بدنه ی Responses جایگزین خواهد شد.

Rewriting and Redirecting 5

Rewrite HTTP Location: با انتخاب این گزینه، در فیلد Location باید یک URL وارد کنید. به عنوان مثال http://www.example.com/new-url. این URL در زمان Match شدن Response جهت استفاده در عمل Redirect موقتی با نام 302Moved کاربرد دارد.

Rewriting and Redirecting 4

  • پس از انجام تنظیمات مورد نظر، در قسمت URL Rewriting Condition Table جهت اضافه کردن یک شرط برای انجام عملیات Matching، بر روی گزینه ی Create New کلیک کنید.
Rewriting and Redirecting 3

نکته:

  • Object: توسط این فیلد مشخص می کنید که کدام بخش از HTTP Request جهت Match شدن مورد مقایسه قرار گیرد. این فیلد دارای گزینه های زیر می باشد:
  1. HTTP Host: با انتخاب این گزینه فیلد Host در HTTP Header را جهت مقایسه و انجام عملیات Match شدن در نظر خواهید گرفت. در صورتی که در مراحل قبلی گزینه ی Rewrite HTTP Body را برای فیلد Response Action در نظر بگیرید، گزینه ی HTTP Host در بین گزینه ها ی مربوط به فیلد Object وجود نخواهد داشت.
  2. HTTP Request URL: با انتخاب این گزینه فیلد URL در HTTP Header را جهت مقایسه و انجام عملیات Match شدن در نظر خواهید گرفت. طول URL می تواند تا  1024 کاراکتر باشد، در صورتی که در مراحل قبلی گزینه ی Rewrite HTTP Body را برای فیلد Response Action در نظر بگیرید، گزینه ی HTTP Request URL در بین گزینه های مربوط به فیلد Object وجود نخواهد داشت.
  3. HTTP Referer: با انتخاب این گزینه، فیلد Referer در HTTP Header را جهت مقایسه و انجام عملیات Match شدن در نظر خواهید گرفت. تنها در صورتی که در مراحل قبلی گزینه ی Request Action را برای فیلد Action Type در نظر گرفته باشید، گزینه ی HTTP Referer در بین گزینه ها جهت تنظیم موجود خواهد بود. همچنین در صورتی که در مراحل قبلی گزینه ی Rewrite HTTP Body را برای فیلد Response Action در نظر بگیرید، گزینه ی HTTP Referer در بین گزینه ها ی مربوط به فیلد Object وجود نخواهد داشت. اگر این گزینه را برای فیلد Object انتخاب کنید یک فیلد دیگر به نام If no Referer Field in HTTP Header جهت تنظیمات اضافه خواهد شد این فیلد دارای دو گزینه ی Do not meet this condition و Meet this condition می باشد.
  4. HTTP Body: با انتخاب این گزینه Request Content  را جهت مقایسه و انجام عملیات Match شدن در نظر خواهید گرفت. تنها در صورتی که در مراحل قبلی گزینه ی Rewrite HTTP Body را برای فیلد Response Action در نظر بگیرید، گزینه ی HTTP Body در بین گزینه ها ی مربوط به فیلد Object وجود نخواهد داشت.
  5. HTTP Location: با انتخاب این گزینه فیلد Location در HTTP Header را جهت مقایسه و انجام عملیات Match شدن در نظر خواهید گرفت. تنها در صورتی که در مراحل قبلی گزینه ی Rewrite HTTP Location را برای فیلد Response Action در نظر بگیرید، گزینه ی HTTP Body در بین گزینه ها جهت تنظیم موجود خواهد بود.
  • Regular Expression: برای این فیلد، بر اساس گزینه هایی که برای دو فیلد Object و Meet this condition if انتخاب می کنید،  یک Regular Expression وارد کنید.
  • Protocol Filter: اگر قصد Match کردن این شرط را فقط برای پروتکل های HTTP یا HTTPS دارید، این گزینه را فعال کنید.
  • Protocol: توسط این فیلد می توانید یکی از  پروتکل هایHTTP یا HTTPS را جهت Match کردن این شرط انتخاب کنید.
  • Content Type Filter: اگر قصد Match شدن این شرط را فقط برای HTTP Content های خاص و مشخص دارید این گزینه را فعال کنید.
  • Content Type Set: برای این فیلد یک یا چند HTTP Content ای که قصد Match کردن آنها با این شرط را دارید، انتخاب کنید.
  • Meet this condition if: توسط این فیلد تعین می کنید که چگونه از Regular Expression و Object جهت برقراری شرط استفاده شود. این فیلد شامل گزینه های زیر می شود:
  1. Object does not match the regular expression: با انتخاب این گزینه اگر Regular Expression با Object مورد نظر Match نشد، شرط برقرار است.
  2. Object matches the regular expressio: با انتخاب این گزینه اگر Regular Expression با Object مورد نظر Match شد، شرط برقرار است.

شما می توانید مراحل بالا را جهت ایجاد Rewriting Rule های دیگر تکرار کنید.

در ادامه از منوی سمت چپ به مسیر Application Delivery > URL Rewriting بروید و از نوار بالای صفحه بر روی گزینه ی URL Rewriting Policy کلیک کرده و جهت ایجاد یک URL Rewriting Policy گزینه ی Create New را انتخاب کنید.

Rewriting and Redirecting 2

نکته:

یک نام برای Policy انتخاب کنید برای فیلد Name یک نام منحصر بفرد انتخاب کرده تا در دیگر بخش های تنظیمات بتوانید به راحتی از آن استفاده کنید. در انتخاب نام مورد نظر از Space یا کاراکتر های خاص استفاده نکنید. همچنین حداکثر طول این نام باید 35 کاراکتر باشد.  در ادامه بر روی گزینه ی OK کلیک کرده و گزینه ی Create New را انتخاب کنید.

Rewriting and Redirecting 1

نکته:

برای فیلد Rewriting Rule Name یک Rewriting Rule که در مراحل قبل ایجاد کردید را انتخاب کنید.

جهت اعمال Rewriting Policy فوق باید آن را در یک Inline Protection Profile انتخاب کنید.

امتیاز و دیدگاه کاربران

دیدگاه خود را درباره این مقاله بیان کنید.ثبت دیدگاه
متشکریم از همراهی شما، میتوانید نظرات و پیشنهادات خود را از طریق فرم زیر برایمان ارسال کنید.

طراحی سایت : رادکام