برنامه وب – اگر کاربر نیاز به ارسال مجوزهای خود را یکبار به هر کدام از مزایای JWT چیست؟

نشانه های JWT به نظر می رسد یک ایده بسیار خوب است. شما می توانید یک درخواست برای برخی از API ارسال کنید بدون استفاده از نام کاربری / رمز عبور خود را مخفی کنید.

با این حال، من به طور کامل مزایای آن را درک نمی کنم. من دو سوال دارم:

  1. برای دریافت نشانه، کاربر همچنان نیاز به ارسال اعتبار خود را به برخی از سرور که مسائل مربوط به این نشانه ها را صادر می کند. آیا نقطه ضعفی در این مورد نیست؟
  2. اگر حمله کننده در هنگام نقل انتقال علامت را دزدی می کند، می تواند از آن استفاده کند تا وانمود کند که شخص دیگری است. تفاوت تنها بین این و استفاده از رمز عبور کاربر / رمز عبور این است که برچسب JWT پس از یک دوره زمانی از بین می رود، بنابراین مهاجم زمان زیادی برای انجام کاری ندارد.

آیا فهم من درست است؟ چه چیزی از دستم رفته؟ مزایای واقعی استفاده از JWT vs user / password چیست؟

TLS – چگونه مقامات cert تعیین و subjectAltNames را تعیین می کنند، اگر توسط کاربر نهایی ارائه نشده است؟

بیایید به عنوان یک کاربر نهایی بگویم من یک CSR (برای سرور cert) برای فرستادن به یک CA و یک نام جایگزین موضوعی را ایجاد می کنم. چگونه می توان آنها را برای اضافه کردن این اطلاعات در گواهی سرور فرستادند؟ یا آنها هرگز چیزی را به عقب بر نمی گردانند و آن را رد می کنند که به من می گویند که یکی را شامل شود؟

فرض کنید یک سناریو که در آن آنها را رد نمی کند، بهترین کاری که من انجام می دهم، چیزی است مانند subjectAltName = commonName یا subjectAltName = {domain of e-mail}؟

در واقع من سعی می کنم به عنوان CA خودم با استفاده از OpenSSL عمل کنم (1.1.0i). من یک جفت ریشه و دو جفت متوسط ​​ایجاد کرده ام. من می دانم که هر بار می توانم به طور دستی SAN را ارائه دهم، اما اگر راهی برای خودکار سازی و فایرفاکس های بیشتری وجود داشته باشد، خنک می شود.

appsec – آیا باید کاربر را از استفاده از برنامه بانکی مسدود کنم اگر آنها مکان را جعل کنند؟

افراد مضر تلاش برای شکستن درخواست شما احتمالا محل آنها را جعل کرده و IP عمومی خود را از طریق VPNs، Tor و / یا پروکسی پنهان می کنند. از طرف دیگر، مکان جعل کردن معمولا چیزی است که یک کاربر نگران حفظ حریم خصوصی اش می کند.

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

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

لینوکس – selinux: مسدود کردن sudo و su با قرار دادن کاربر در پروفایل user_t

من سعی می کنم از افزایش امتیازات از حساب های غیر مجاز مانند www-data جلوگیری کنم.

اساسا، اگر وب سرور من به خطر بیافتد، کراکر ها ممکن است راه هایی برای افزایش پیدا کند (آسیب پذیری های یافت شده در sudo root root سرور؟) من می خواهم راه دیگری برای این کار را بیاورم و متوجه شدم که قرار دادن www-data در user_t نمایه سلینکس این اثر را دارد.

با این حال، با نگاهی به ممیزی فایل زمانی که www-data تلاش می کند تا sudo یا su این را نشان دهد:

برای sudo:

 type = AVC msg = audit (1533818833.807: 318): avc: setted برای pid = 1417 comm = "sudo" capability = 7 scontext = user_u: user_r: user_t: s0 tcontext = user_u: user_r: user_t: s0 tclass = capability

توسط:
selinuxuser_use_ssh_chroot boolean اشتباه تنظیم شد
شرح:
اجازه دهید selinuxuser از ssh chroot استفاده کند

اجازه دسترسی با اجرای:
# setsebool -P selinuxuser_use_ssh_chroot 1

برای su:

 type = AVC msg = audit (1533818282.076: 263): avc: denied {write} برای pid = 1354 comm = su su نام = "btmp" dev = "dm-0" ino = 8428621 scontext = user_u: user_r: user_t: s0 tcontext = system_u: object_r: faillog_t: s0 tclass = file

توسط:
    عدم اجرای نوع (TE) اجازه می دهد که قانون باشد

    شما می توانید از audit2allow برای تولید یک ماژول قابل بارگیری برای این دسترسی استفاده کنید.

بنابراین، برای sudo ، به نظر می رسد بیش از یک اشکال (به همین دلیل selinuxuser_use_ssh_chroot ؟؟!) و برای su ، انکار است از حقوق کافی در / var / log / wtmp

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

بسیاری از تشکر