وب سایت ها – دریافت سردرگمی که این پاسخ نشان دهنده آسیب پذیری CORS

 HTTP / 1.1 200 OK
نوع محتوا: application / json
محتوای طول: 12
اتصال: نزدیک است
تاریخ: Tue، 25 Sep 2018 12:59:56 GMT
x-amzn-RequestId: xxxxxxxxxxx
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type، Authorization، Accept، X-Amz-
تاریخ، X-Api-Key، X-Amz-Security Token، x-client-type، x-client-version، x-
ناشناس شناسه
x-amz-apigw-id: xxxxxx
X-Amzn-Trace-Id: Root = xxxxxxxxx؛ Sampled = 0
X-Cache: خانم از روی ابر
از طریق: 1.1 xxxxxxxxxxxxxx
X-Amz-Cf-Id: xxxxxxxxxxxxxx

{"ok": true}

اشتباه می گیرم که این پاسخ آسیب پذیری CORS را نشان می دهد.

هنگامی که درخواست را ارسال می کنم، Origin: evil.com را تغییر دادم و سپس پاسخ فوق را تغییر دادم.

آیا کسی می تواند به من بگوید که آیا این پاسخ آسیب پذیری CORS را نشان می دهد؟

http – چه حزبی محافظت نشده است با CORS غیر فعال نیست؟

در اینجا چیزی است که من در مورد CORS می دانم: این اجازه می دهد تا شما به دسترسی به داده ها در دامنه دیگری از ظاهر هر وب سایت دیگر، تا زمانی که اموال access-control-allowed-origin دستگاه که داده ها را خدمت می کند.

نرم افزار دسکتاپ می تواند داده ها را از هر وب سایت بیرون بکشد و آنچه را که با آن انتخاب می کند، انجام دهد، اما مرورگرهای وب به طور خاص از گرفتن اطلاعات از حوزه های مختلف محدود نمی شوند. ] بنابراین، عدم دسترسی به cors در حفاظت از سرور از خدمت به سایت اشتباه است، و یا از مرورگر جلو در برخی از راه محافظت می کند؟

چگونه وب سایت های پروکسی CORS کار می کنند؟

در حالی که من در حال توسعه سمت جلویی پروژه وب من بودم (من از چارچوب Angular 6 استفاده می کنم)، خطای حفاظت CORS را دریافت کردم (جای تعجب نیست که پروژه من در انتهای پروژه منسجم نیست). پس از چند جستجوی در مورد چگونگی محافظت از CORS، من برخی از وب سایت های پروکسی را پیدا کردم.

من نمی خواهم نام وب سایت ها را ذکر کنم، اما معمولا در این فرمت کار می کنند؛

 https: // acorsproxywebsite / https: / /google.com

هنگامی که درخواست را ارسال می کردم، قادر به ارسال درخواست GET شدم و پاسخ از هر وب سایت غیر فعال CORS دریافت کردم.

بنابراین، سوال من این است: چگونه وب سایت های پروکسی CORS می توانند از محافظت عبور کنند و پاسخ از هر گونه منابع متقابل؟ آیا امکان ساخت یک ساختار مشابه وجود دارد تا من بتوانم محافظت از CORS را از قسمت جلو من دور کنم؟

همان سیاست مبدأ – آیا CORS و CSRF-tokens فقط برای درخواست های POST و GET است؟

سوالات زیر را در رابطه با CSRF، SOP و CORS مطرح می کنم.

  1. آیا نشانه های CSRF تنها از ارسال فرم با روش POST یا GET محافظت می کنند؟ آیا این فقط یک "معمول" است (با توجه به این واقعیت که تنها ارسال های ارسالی آسیب پذیر هستند مانند مثال درخواست POST برای انتقال وجوه در یک وب سایت بانکداری وب)

  2. آیا CORS تنها در صورت درخواست محتوای با GET موجود است روش و نه با POST؟ اگر یک فرم با استفاده از نشانه CSRF محافظت شده باشد، در این صورت هیچ نگرانی در مورد CORS برای ایجاد چنین درخواست (به معنی ارسال فرم از یک دامنه متفاوت) وجود ندارد؛ به این دلیل که حتی با فعال شدن CORS، یک نشانه CSRF از این محتوا محافظت می شود (حتی اگر این یک مورد معمول استفاده از نشانه CSRF نیست)

  3. آیا CORS بر اساس چک کردن سرصفحه مبدأ به دلیل این واقعیت است که مرورگر قربانی را نمی توان به دروغ گویی سرچشمه مبدأ فریب داد؟ در حالی که CURL ما را قادر به فریب دادن هدرها می کند، در این حمله خاص مرورگر قربانی نمی تواند فریب خورده باشد؟

من پست های مختلفی را در رابطه با بالا خوانده ام، اما توضیح واضح تر را دوست دارم. به عنوان مثال من این را خوانده ام:

با این حال، بارگیری منابع از میزبان های دیگر مانند تصاویر، اسکریپت ها، شیوه نامه ها، فریم ها، فرم های ارسال و غیره به این محدودیت محدود نمی شود

چه چیزی باعث دلگرمی من است فکر می کنم این است که اکثر موضوعات در مورد CSRF نشانه تنها در نمونه هایی با فرم ها و ارسال داده ها با روش POST به یک سرور مشخص می شود و بر روی تصویر بزرگ تر توضیح نمی دهد.