احراز هویت – چه نوع oauth نوع اعطا باید پس از ورود به سیستم اجتماعی استفاده کنید

من یک برنامه کاربردی دارم که دارای سرویس میکروسکوپ مخصوص خود است تا علامت های دسترسی را صادر کند. برای کاربران ثبت نام با استفاده از ایمیل و رمز عبور من از grant_type = 'password' استفاده می کنم. وقتی که یک کاربر در استفاده از رسانه های اجتماعی اقدام به ثبت نام می کند چه می شود؟

من فکر کردم که یک رمز عبور تصادفی برای دسترسی به نشانه های دسترسی ایجاد کنم، اما سرور oauth فقط کلمه عبور متن ساده را می پذیرد و من رمز ذخیره شده در هش ها را در db خود ذخیره می کنم. آیا باید برای استفاده از نشانه های مختلف از نوع دیگری استفاده کنم؟

oauth2 – ذخیره دسترسی OAuth و نوشتن نشانه ها در کوکی های غیر HttpOnly

عنصر اصلی از خطر XSS است. اگر هر برنامه XSS در برنامه شما وجود داشته باشد، می توان آن را به طور بی عیب و نقص نشان داد.

به محض اینکه یک Token به سرقت رفته باشد، مهاجم می تواند کاملا کاربر را جعل کند.

برای من روشن نیست به همین دلیل است که شما باید این کوکی ها را در خارج از HTML قرار دهید: آیا می توانید از کوکی دیگری برای ذخیره عنصر عمومی کوکی استفاده کنید (شاید کل بارگیری یا به سادگی انقضا و هر چیزی که برای مشتری خود نیاز دارید تا دریابید که آیا نیاز است به پورتال auth بروید) و نشانه های JWT را در کوکی های HTTP تنها نگه دارید؟

کدام جریان OAuth 2 توسط شرکت های بزرگتر مانند توییتر و فیس بوک استفاده می شود و چرا آنها آن را انتخاب کرده اند؟

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

چرا سرور auth_code بیش از URI هدایتگر است تا در یک صفحه وب در OAuth 2.0؟

در هر استاندارد OAuth سه پایه، auth_code به عنوان پارامتر URL عمل می کند، در حالی که URL redirect_uri در هنگام ثبت نام مشتری مشخص شده است. من حدس می زنم این یک پاسخ HTTP 302 است که توسط سرور OAuth فرستاده می شود که مرورگر را مرور می کند. من تعجب می کنم که چرا auth_code در بدن یک وب سایت تولید شده توسط سرور OAuth خدمت نمی کند؛ بنابراین HTTP 200 پاسخ به طور منظم ارسال می شود. آیا به جای ارائه خدمت در داخل صفحه وب، یک پیغام امنیتی مرتبط با خدمت auth_code بیش از redirect_uri مرتبط است؟

اجتناب از حمله نیروهای شدید به سرور مجوز oAuth

من در حال حاضر به چارچوب مجوز OAuth 2 نگاه می کنم. دیروز شروع به تعجب کردم که چگونه برای جلوگیری از حمله نیروهای بیرحمانه در جریان اعتبار مجوز کد (https://tools.ietf.org/html/rfc6749#section-4.1). برای روشن شدن، جریان به صورت زیر عمل می کند:

  1. مرورگر درخواست هایی را برای یک منبع محافظت شده در یک مشتری oAuth 2 ( client.example.com ) می فرستد.
  2. مرورگر به نقطه پایانی مجوز هدایت می شود سرور مجوز:

    GET / authorize؟ response_type = کد & client_id = s6BhdRkqt3 & state = xyz
        & redirect_uri = https٪ 3A٪ 2F٪ 2Fclient٪ 2Eexample٪ 2Ecom٪ 2Fcb

با حالت خاصی از رشته تصادفی تولید شده توسط مشتری oAuth 2

  1. ورود به سیستم مرورگر در سرور مجوز
  2. هنگامی که به درستی وارد سیستم شوید، مرورگر با پارامترهای پرس و جو redirect-uri با برخی از پارامترهای پرس و جو

    https://client.example.com/cb؟code=SplxlOBeZQQYbYS6WxSbIA&state=xyz

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

  1. مشتری تایید می کند که آیا پارامتر حالت متعلق به جلسه عامل کاربر (برای جلوگیری از XSRF) و درخواست توالی دسترسی از سرور مجوز با استفاده از کد پارامتر پرس و پایه احراز هویت با اعتبار مشتری:

    POST / token HTTP / 1.1
    میزبان: server.example.com
    مجوز: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
    Content-Type : application / x-www-form-urlencoded [19659012] grant_type = authorization_code & code = SplxlOBeZQQYbYS6WxSbIA و redirect_uri = https٪ 3A٪ 2F٪ 2Fclient٪ 2Eexample٪ 2Ecom٪ 2Fcb

ممکن است یک مهاجم یک بار دیگر تکرار مراحل 2 و 4 را انجام دهد، بدون اینکه وارد سرور مجاز شوید :

  1. برو به یک منبع محدود در client.example.com .
  2. تجزیه پارامتر درخواست در مسیر هدایت (و ذخیره کوکی / شناسه جلسه) [19659018] با رفتن به https://client.example.com/cb؟code=value1&state=xyz (با کوکی / شناسه جلسه دریافت شده در 1) سعی کنید یک نشانه برای value1 دریافت کنید.

دوباره این کار را انجام دهید و دوباره برای کد = ارزش 2 ، کد = ارزش 3 ، …

هیچ چیز در بین دو تلاش مهاجم مشابه نیست، که باعث می شود سرور مجاز برای ذخیره سازی تعدادی تلاش و بلوک پس از یک شماره خاص.

با این حال، احتمالا یک پنجره کوچک برای مهاجم برای انجام atta ck، از آنجا که کد فقط در سرور بین مراحل 4 و 5 در جریان معتبر است (به جز اگر مشتری در جایی بین 4 و 5 سقوط می کند.)

دیگر

  • دارای یک کد بزرگ تولید شده توسط سرور مجوز [19659018] کدهای موجود فقط برای یک مدت زمان محدود

کدام چیز دیگری است که ما می توانیم برای جلوگیری از حمله توصیف شده انجام دهیم؟