آیا در این تنظیم نیاز به حفاظت از CSRF با یک API REST با پشتیبانی oauth2 و یک سرور معتبر SSO Auth SSO دارم؟

من دیدم پاسخ آیا CSRF امکان پذیر است اگر من حتی از کوکی ها استفاده نمی کنم؟ اما 2 پاسخ متقابل وجود دارد و خود سوال این اطلاعات را نیز ارائه نمی دهد.

من یک API REST ایجاد می کنم که توسط یک سرویس دهنده وب (از ایجاد خود ما) در حال اجرا در دامنه دیگری استفاده می شود، بنابراین ما درخواست CORS را انجام دهید این API به عنوان یک سرور منبع oauth2 اجرا می شود، بنابراین دسترسی توسط توالی هایی که در هدر احراز هویت منتقل می شوند محدود شده است. ما هیچ کوکی وجود ندارد، همه چیز بی ثمر است. من از مقاله در https://spring.io/blog/2011/11/30/cross-site-request-forgery-and-oauth2

  • دنبال میکنم. ما از SSL استفاده خواهیم کرد
  • ثبت نام تغییر مسیر uri
  • تنها نوع اعطاء ما، کد مجوز است، بدون نیاز به یک مخفی مشتری (به عنوان منبع مشتری وب عمومی) به جای نوع کمک ضمنی، به عنوان در مورد توصیه های در https://oauth.net/2/ grant-types / implicit /
  • مشتری با یک سرصفحه تایید می کند زمانی که سرور سرور واقعی آن را فراخوانی می کند
  • دریافت پروانه دسترسی توسط گذراندن کد مجوز 1 بار در پارامترهای فرم صورت می گیرد ( x-www- Form-urlencoded )، که به نظر می رسد راه طبیعی است، نباید در تاریخ مرورگر به عنوان پارامتر query باشد.
  • مشتری همچنین از برخی از پارامترهای حالت مخفی هنگام استفاده از کد مجوز استفاده می کند. در این مورد من مطمئن نیستم که یک نقطه وجود دارد زیرا مشتری به یک رمز محرمانه برای دسترسی به یک نشانه دسترسی دسترسی پیدا نمی کند.
  • برای نقطه پایانی oauth / token که در واقع شما یک token دسترسی دریافت می کنید، تنها مجاز هسته دامنه مشتری وب ما است
  • برای نقطه پایانی oauth / authorize CORS مجاز نیست. شاید این بیش از حد باشد زیرا تغییر مسیر یوری فقط به حوزه ی خود ما اشاره می کند؟

من فکر می کنم که تقریبا همه چیز را در آن قسمت پوشش می دهد.

اکنون یک بردار حمله دیگر وجود دارد که در قالب سرور تأیید هویت oauth2 وجود دارد خود، که قرار است SSO باشد و جلسات داشته باشد و با مجوز اولیه در دسترس است. با این حال، به نظر نمی رسد هیچ اقدامی را که می توانید با یک حمله csrf انجام دهید که در واقع مفید خواهد بود. شما می توانید درخواست خود را به این نقطه های oauth انجام دهید، اما شما باید قادر به خواندن نتیجه، که توسط پیکربندی CORS جلوگیری می کند و این واقعیت است که تغییر مسیر uri از قبل ثبت شده است. هیچ POST شما وجود ندارد که بتوانید رمز عبور خود را عوض کنید، آدرس ایمیل خود را بازنشانی کنید، و غیره، همه چیز در واقع به عنوان یک سرور منبع نیز در معرض قرار دارد.

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

TLS – Auth پایه بیش از HTTP هدایت شده به HTTPS – آیا آن را نشت؟

من یک API Flask ایجاد میکنم و من تا حدودی نا آشنا با سطوح حمله که در مسیر هدایت از HTTP به HTTPS وجود دارد یا درخواست HTTP زمانی که هدر HSTS قبلا ارسال شده بود

اجازه دهید بگوییم کاربر درخواست مسیر را می کند user @ pass: / ping بیش از HTTP. آنها می توانند باشند:

  • به HTTPS هدایت می شود، و نه لزوما متوجه می شوند که درخواست های HTTP همیشه هدایت می شوند، بدین معنی که می توانند این کار را ادامه دهند.
  • مسدود شده است. همه تلاش برای HTTP با پاسخ "ممنوع" برخی از انواع خدمت می کنند. آنها متوجه خواهند شد، زیرا نمیتوانند به نقطه پایانی دسترسی پیدا کنند، اما حدس می زنم که داده ارسال شده هنوز نشان داده شده است.

اگر یک کاربر با هدر Basic Authentication با HTTP ارسال می کند و به HTTPS هدایت می شود، یا به صورت بازنویسی یا با HSTS در محل، آیا اطلاعات هنوز معلوم نشده است؟

اگر چنین است، می توانم تصور کنم که مسدود کردن HTTP یک روش موثرتر برای گفتن به کاربر برای متوقف کردن درخواست مسیر HTTP است. تغییر مسیر هرگز باعث نمی شود که آنها واقعا از HTTP برای درخواست اولیه استفاده کنند.

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

تأیید هویت – مایکروسافت تاکنون رسما توصیف کرده است که اشکال قانونی بر روی ویندوز Auth وجود دارد

تیم من با استفاده از Windows Authentication برای وبسایت روبرو می شود. من این فرم ها را پاک کرده ام و می توانم آسیب پذیری های امنیتی متعددی را در پاسخ به NTML ببینم و می توانم توصیه های کلی "احراز هویت ویندوز برای سایت های اینترانت و احراز هویت برای سایت های عمومی" را ببینم.

مردم احترام می گذارند. من امیدوار بودم یک MSDN فعال را پیدا کنم که به صراحت تایید هویت فرم ها را برای سایت های عمومی توصیه می کند یا اینکه آیا احراز هویت ویندوز با لیستی از اقدامات امنیتی اضافی درست است.

آیا مایکروسافت فقط یک توصیه را ارائه کرده است؟