דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. json web token vs cookie auth

json web token vs cookie auth

מתוזמן נעוץ נעול הועבר תכנות
24 פוסטים 10 כותבים 714 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    כתב ב נערך לאחרונה על ידי
    #8

    @aaron חלק מהשאלה של @clickone היא למה אנחנו רואים
    שכל החברות הגדולות למרות שהם בחזית הטכנולוגיה האתר שלהם עובד בצורה המסורתית.
    הםאם זה לא רעיון של חוסר אמון, או העדר כיוון ותמיכה בדרכים ה"אקזוטיות" של SPA מודרנים?

    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

    בכל נושא אפשר ליצור קשר dovid@tchumim.com

    תגובה 1 תגובה אחרונה
    1
    • scez scezS מנותק
      scez scezS מנותק
      scez scez
      כתב ב נערך לאחרונה על ידי
      #9

      לא רציתי להכנס לדברי המומחים אבל אכן ב rast api משתמשים בזה
      ומה ששאלת בקשר למה החברות הגדולות לא משתמשים בזה כגון הבנקים וכו לידיעתך בבנקים עד לאחרונה ואפילו כעת בבנקים מסויימים אם אתה רוצה לשלוח איזשהו פניה זה מתבצע דרך ה-פ-ק-ס!!?
      כך שבנקים לא תמיד זה ראיה גם יכול להיות שיש להם סטנדרטים שהם צריכים לעמוד בהם ורשמי עדיין אי אפשר להשתמש בזה....

      clickoneC תגובה 1 תגובה אחרונה
      1
      • clickoneC מנותק
        clickoneC מנותק
        clickone
        השיב לscez scez ב נערך לאחרונה על ידי clickone
        #10

        @scez-scez
        בנק פועלים מבחינתי הוא בנק שאני מתייחס אליו, כי בד"כ הם בחזית הטכנולוגיה בין שלל הבנקים בארץ.

        בכל מקרה, גימייל עצמם עדיין משתמשים בקוקיז.

        @aaron לא הבנתי שזה בציניות, סורי 😮

        לגבי הרידיירקט וכו', לא הבנתי איפה הJWT פותר את זה? מה זה משנה איך החוסר אימות הגיע לדפדפן, שלכן הוא צריך להעביר לדף לוגין וכו'?
        ז"א, ב2 המקרים, הגיעה בקשה עם הידר שמכיל בתוכה את פרטי המשתמש הנוכחי בדרך כלשהיא, שם יכול להיות גם עוד נתונים,
        ואז השרת מחליט שהמשתמש לא מאומת בגלל סיבה, הוא מחזיר תשובה שצריך לעשות לוגין, אם זה SPA, אז זה חוזר בJSON, ואם זה דף רגיל, זה הפניית 301.....

        אבל מוסכם שבשניהם זה הידר שמצורף לכל בקשה.
        אם אני אדחוף את הערך של JWT לתוך קוקיז במקום להידר בירר, ואז אנתח בכניסה את הJWT, זה יהיה שונה?
        למה השימוש בהידר מיוחד?

        הדבר היחיד שאני יכול להבין בתהליך הוא שיתוף של ההידר בין 2 שרתים שונים לגמרי, אבל גם בזה אפשר שהקוקיז יהיה תקף ב"קורס" ב2 דומיינים.
        בASP הרגיל ובMVC (שייתכן שבעוד אפליקציות), חלק מהאימות מוצפן בקוקיז, ולא מדובר רק ב SessionId שלו....
        אגב, גם בטמפלט האנגולר הרשמי של מייקרוסופט, האימות משתמשים נעשה עם קוקיז ולא עם JWT.

        לא שכל הטענות האלו באות להוכיח משהו......

        סליחה על האריכות..... משהו כאן מתפספס לי

        תודה על הזמן שלכם 🙂

        אין טסט כמו פרודקשן.

        המייל שלי urivpn@gmail.com

        scez scezS dovidD 2 תגובות תגובה אחרונה
        0
        • scez scezS מנותק
          scez scezS מנותק
          scez scez
          השיב לclickone ב נערך לאחרונה על ידי
          #11

          @clickone נכון בנק הפועלים הם בקידומת הטכנולוגיה עד כדי כך כשאתה שולח להם מייל זה מגיע לסניף בפקס
          אבל לא נראה לי שזה קשור לבנק זה או אחר זה פשוט נהלים שהם צריכים לעמוד בהם

          תגובה 1 תגובה אחרונה
          1
          • dovidD מנותק
            dovidD מנותק
            dovid ניהול
            השיב לclickone ב נערך לאחרונה על ידי
            #12

            @clickone אמר בjson web token vs cookie auth:

            @scez-scez
            בנק פועלים מבחינתי הוא בנק שאני מתייחס אליו, כי בד"כ הם בחזית הטכנולוגיה בין שלל הבנקים בארץ.

            שום דבר בארץ לא בשום חזית טכנולוגית... אני הבאתי ראיה מאתרים עולמיים, של חברות טכנולוגיה.
            לבנק הפועלים יש כמו כל גוף ישראלי שפע של מתכנתי פלסטיק שיוצרים דברים מפגרים.
            אז נכון שמידי פעם הם מצליחים להביא בשורה תחתונה משהו, אבל תעיף מבט בקוד מקור צד לקוח ותראה שהעבודה שמה ממש "סבבה".

            הדבר היחיד שאני יכול להבין בתהליך הוא שיתוף של ההידר בין 2 שרתים שונים לגמרי, אבל גם בזה אפשר שהקוקיז יהיה תקף ב"קורס" ב2 דומיינים.
            בASP הרגיל ובMVC (שייתכן שבעוד אפליקציות), חלק מהאימות מוצפן בקוקיז, ולא מדובר רק ב SessionId שלו....

            הדבר היחיד שאני יכול להבין בתהליך הוא שיתוף של ההידר בין 2 שרתים שונים לגמרי, אבל גם בזה אפשר שהקוקיז יהיה תקף ב"קורס" ב2 דומיינים.

            אני חושב שאתה טועה, קוקיז לא אמור להכיל משהו מעבר להצפנה של session-id (כל שימוש כאחסון אפילו מוצפן נחשב כמסוכן, לא יודע למה).
            קשה להעביר אותו בין שרתים שונים כי טכנית קוקיז שייך לדומיין אב אחד לכל היותר לכן לכל השירותים חייב להיות דומיין אב אחד.
            כלומר אם יש לך a.com וגם b.com אתה חייב לעשות פעם אחת לפחות אימות נוסף, ובנוסף בצד השרת אתה צריך להצליב מידע, כלומר לטעון את פרטי המשתמש ממקור משותף.
            גם אם מדובר בדומיין אב אחד, צריך בצד השרת של שני השירותים לעשות שימוש משותף בשסנים, או לפחות לבדוק מול הטבלה של השירות השני. זה מה ש@aaron ניסה לחסוך.

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            dovidD תגובה 1 תגובה אחרונה
            4
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              השיב לdovid ב נערך לאחרונה על ידי
              #13

              @dovid אמר בjson web token vs cookie auth:

              אז נכון שמידי פעם הם מצליחים להביא בשורה תחתונה משהו, אבל תעיף מבט בקוד מקור צד לקוח ותראה שהעבודה שמה ממש "סבבה".

              עדכון: אני תחת רושם של לפני שנה בערך, כי כעת ראיתי שהמצב טוב...

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              1
              • ח מנותק
                ח מנותק
                חוקר
                כתב ב נערך לאחרונה על ידי חוקר
                #14

                @clickone אמר בjson web token vs cookie auth:

                מכירים חברות גדולות שעובדות עם זה? בדקתי בינתיים בבנק פועלים ובגוגל, ושם ראיתי שהם משתמשים בקוקי.

                אין לי מושג האם זה נקרא עבורך חברה גדולה, אבל חברת צ'רידי משתמשים בזה.
                למשל בכדי לעדכן ביצוע תרומה שנעשתה אצלי בשרת, השרת שלי מזדהה מול השרת שלהם עם jwt.
                ואגב יש לזה בדר"כ תוקף של שנה ופעם בשנה אני צריך לבקש להם טוקן חדש..
                וגם כל הדשבורד שלהם בדפדפן עובד עם זה

                dovidD תגובה 1 תגובה אחרונה
                2
                • dovidD מנותק
                  dovidD מנותק
                  dovid ניהול
                  השיב לחוקר ב נערך לאחרונה על ידי
                  #15

                  @חוקר במקומות בהם יש API חיצוני זה מאוד נפוץ.
                  עיקר השאלה זה במקרה שמדובר נטו בממשק דפדפני, כך שקוקויז לכאורה זה הפתרון הטבעי.

                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                  ח תגובה 1 תגובה אחרונה
                  1
                  • ח מנותק
                    ח מנותק
                    חוקר
                    השיב לdovid ב נערך לאחרונה על ידי
                    #16

                    @dovid אמר בjson web token vs cookie auth:

                    @חוקר במקומות בהם יש API חיצוני זה מאוד נפוץ.
                    עיקר השאלה זה במקרה שמדובר נטו בממשק דפדפני, כך שקוקויז לכאורה זה הפתרון הטבעי.

                    גם בדשבורד שלהם זה עובד כך.
                    אך ייתכן מהסיבה שבין כך בנו את ל API

                    תגובה 1 תגובה אחרונה
                    1
                    • yossizY מנותק
                      yossizY מנותק
                      yossiz
                      השיב לclickone ב נערך לאחרונה על ידי yossiz
                      #17

                      @clickone תודה רבה על העלאת הנושא. תמיד ידעתי שקיים משהו שנקרא JWT אבל דחפתי את זה למגירה של דברים ללמוד "יום אחד...".

                      @clickone אמר בjson web token vs cookie auth:

                      והצעת המתכנת שם לעבור לאימות משתמשים באמצעות JWT.

                      מסקרן אותי מה הנימוקים שלו? רק בגלל שזה חדש ומבריק?

                      בדקתי בינתיים בבנק פועלים ובגוגל, ושם ראיתי שהם משתמשים בקוקי

                      אני לא רואה קושיא גדולה למה חברות גדולות לא משתמשים בו, חברות אלו כבר השקיעו בתשתיות שבנויות על קוקיז עם היתרונות/חסרונות שלהם, אין להם מספיק הצדקה להשקיע במשהו שונה שמגיע עם יתרונות/חסרונות משלו.

                      לעצם הנושא, זה די חדש לי כנ"ל, אבל יצאתי מהמחקר שלי עם תובנות אלו:
                      צריך לחלק את הנושא לתת-נושאים,
                      א) יתרונות/חסרונות של שמירת הרשאות בקוקי לעומת local storage. (ראיתי טענות לכאן ולכאן: בקוקי יש בעית CSRF, ב-local storage אין את ההגנות שנוספו במשך השנים כ-http only ועוד)
                      ב) יתרונות/חסרונות של שמירת state/session data בלקוח לעומת בשרת. (ראיתי טענות לכאן ולכאן: בשמירת סשן בשרת יש בעיות של scaling, בשמירת סשן בלקוח יש בעיה שאין שליטה על הטוקנים אחרי הנפקתם)

                      נהנתי מכתבה זו שמסכמת את הנושא בצורה ברורה.

                      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                      תגובה 1 תגובה אחרונה
                      6
                      • מנצפךמ מנותק
                        מנצפךמ מנותק
                        מנצפך
                        כתב ב נערך לאחרונה על ידי
                        #18

                        אני בדיוק נדרש כעת לנושא זה.

                        לדעתי, כפי שכתבו כאן למעלה, ב API חיצוני, זה מאוד מתאים.

                        אבל בשביל סשן של דף וובי רגיל, זה פחות מתאים.

                        ההבדלים:

                        1. קשה (יותר) לבטל JWT, זה מצריך רשימה שחורה. וזה מוריד את כל הקאצ' של הטוקן.

                        2. ב JWT יש פחות התאמה לשמירת נתונים על הסשן הספציפי. (נניח רוצים לשמור רשימת קניות או כל state אחר.

                        אני משתמש ב JWT בשביל דברים שמצריכים סשן ארוך טווח. נראה לי לזה זה יותר מתאים.

                        A תגובה 1 תגובה אחרונה
                        2
                        • A מנותק
                          A מנותק
                          avr416
                          כתב ב נערך לאחרונה על ידי
                          #19

                          איזה קטע!!
                          אני כבר לפחות שנתיים משתמש רק עם jwt.
                          זה לא איזה משהו חדש.. וזה אכן נראה שזה הסטנדרט היום בכל הפרוייקטים שממשים api.
                          באנגולר אני רואה את זה כמעט בכל פרוייקט שאני ניגש אליו.
                          הייתרון של זה שזה אכן מאפשר לך גישה לapi מכל קליינט שהוא (דפדפן, אפליקציה וכו').
                          וכן לנהל את המשתמשים מסרביס אחד, ולפנות על ידי הטוקן לביצוע פעולות בסרביסים אחרים כמו שכתבו כאן לפני, דבר שנהיה נפוץ יותר ויותר.
                          למשל https://auth0.com/ מספק לך אפשרות לנהל את כל המשתמשים שלך באפליקציות שונות, במקום מרכזי אחד. (וכמדומני שהם גם היוצרים של jwt..).
                          ראה כאן עוד הרחבה
                          https://auth0.com/docs/tokens/json-web-tokens
                          https://auth0.com/learn/json-web-tokens/

                          תגובה 1 תגובה אחרונה
                          3
                          • A מנותק
                            A מנותק
                            avi rz
                            כתב ב נערך לאחרונה על ידי
                            #20

                            בס"ד

                            סליחה על הבורות.
                            יכול להיות שחסר לי במה שjwt מכילה,
                            איך שהבנתי: שולחים את השם משתמש וסיסמא, והיא מחזירה טוקן שאותו שומרים בדפדפן ושולחים אותו לשרת בכל בקשה (כמובן - בקשה שאמורה להיות פרטית)
                            וכשהשרת מקבל את הטוקן, יש פונקציה שבודקת האם הטוקן הזה פעיל והיא מחזירה true/false.
                            נ.ב. ראיתי את ה בעבר בהדרכה של ליאור רבינוביץ,

                            -

                            אבל לא כ"כ התרשמתי ולא ראיתי בזה משהו מיוחד כי בעצם,
                            אם אני עושה טבלה של טוקנים, וכשנכנס משתמש עם השם משתמש והסיסמא שלו, והם נכונים אני מג'נרט לו טוקן, והוא שומר את זה בדפדפן, (אפשר ב LocalStorage) ובכל בקשה לשרת אני שולח, את טוקן, ובודק אם הוא פעיל, (אם לא ביטלו אותו, אם היה בו פעילות לאחרונה, אפשר גם להגביל לip ולסוג דפדפן ומערכת הפעלה ולחצי שנה או שנה מתאריך יצירת הטוקן, וכו'.).

                            • לגבי אבטחה של הטוקן: מה הבעיה לשמור אותו ב dataBase שלי הרי אם יפרצו לשם אז כבר לא יצטרכו טוקן יוכלו לגשת לכל הנתונים גם בלי,

                            • לגבי ממשק מדובר בטבלה אחת וכמה פונקציות.

                            • לגבי גישה מכל המכשירים: בכל מקרה בכל מכשיר יצטרכו להתחבר מחדש כי צריך לשמור את הטוקן במקום שהאפליקציה נותנת.

                            A תגובה 1 תגובה אחרונה
                            0
                            • A מנותק
                              A מנותק
                              avr416
                              השיב למנצפך ב נערך לאחרונה על ידי
                              #21

                              @מנצפך אמר בjson web token vs cookie auth:

                              1. ב JWT יש פחות התאמה לשמירת נתונים על הסשן הספציפי. (נניח רוצים לשמור רשימת קניות או כל state אחר.

                              נכון.
                              למה שתרצה לשמור את רשימת הקניות בשרת שלך? לא חבל להעמיס עליו? המטרה שלך היא לנצל את כח העיבוד של הקליינט ולהעביר אליו כמה שיותר משימות שהוא יבצע, כדי שהשרת שלך יתמקד במה שהוא צריך לעשות.

                              את הסטייט תנהל בקליינט.

                              תגובה 1 תגובה אחרונה
                              0
                              • A מנותק
                                A מנותק
                                avi rz
                                השיב לavi rz ב נערך לאחרונה על ידי
                                #22

                                @avi-rz אמר בjson web token vs cookie auth:

                                בס"ד
                                סליחה על הבורות.
                                יכול להיות שחסר לי במה שjwt מכילה,
                                איך שהבנתי: שולחים את השם משתמש וסיסמא, והיא מחזירה טוקן שאותו שומרים בדפדפן ושולחים אותו לשרת בכל בקשה (כמובן - בקשה שאמורה להיות פרטית)
                                וכשהשרת מקבל את הטוקן, יש פונקציה שבודקת האם הטוקן הזה פעיל והיא מחזירה true/false.
                                נ.ב. ראיתי את ה בעבר בהדרכה של ליאור רבינוביץ,
                                רישום טוקן - שימוש בטוקן
                                אבל לא כ"כ התרשמתי ולא ראיתי בזה משהו מיוחד כי בעצם,
                                אם אני עושה טבלה של טוקנים, וכשנכנס משתמש עם השם משתמש והסיסמא שלו, והם נכונים אני מג'נרט לו טוקן, והוא שומר את זה בדפדפן, (אפשר ב LocalStorage) ובכל בקשה לשרת אני שולח, את טוקן, ובודק אם הוא פעיל, (אם לא ביטלו אותו, אם היה בו פעילות לאחרונה, אפשר גם להגביל לip ולסוג דפדפן ומערכת הפעלה ולחצי שנה או שנה מתאריך יצירת הטוקן, וכו'.).

                                לגבי אבטחה של הטוקן: מה הבעיה לשמור אותו ב dataBase שלי הרי אם יפרצו לשם אז כבר לא יצטרכו טוקן יוכלו לגשת לכל הנתונים גם בלי,

                                לגבי ממשק מדובר בטבלה אחת וכמה פונקציות.

                                לגבי גישה מכל המכשירים: בכל מקרה בכל מכשיר יצטרכו להתחבר מחדש כי צריך לשמור את הטוקן במקום שהאפליקציה נותנת.

                                @clickone פיספסתי מידי הרבה דברים על jwt?

                                nigunN dovidD 2 תגובות תגובה אחרונה
                                1
                                • nigunN מנותק
                                  nigunN מנותק
                                  nigun
                                  השיב לavi rz ב נערך לאחרונה על ידי nigun
                                  #23

                                  @avi-rz
                                  בא נתחיל ממה שכן הבנת
                                  תתחיל לפרט ואז ידעו מאיפה להתחיל
                                  כי לא ברור על מה אתה שואל על טוקן רגיל או על JWT

                                  מייל: nigun@duck.com

                                  תגובה 1 תגובה אחרונה
                                  0
                                  • dovidD מנותק
                                    dovidD מנותק
                                    dovid ניהול
                                    השיב לavi rz ב נערך לאחרונה על ידי
                                    #24

                                    @avi-rz אנא לא לרכב על נושא קיים.
                                    פתח נושא חדש ושאל כל מה שתרצה, ואם אתה תוהה אם יש בכלל מה שפספסת אז כן, יש לך בהחלט מה ללמוד.

                                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                    תגובה 1 תגובה אחרונה
                                    0

                                    • 1
                                    • 2
                                    בא תתחבר לדף היומי!
                                    • התחברות

                                    • אין לך חשבון עדיין? הרשמה

                                    • התחברו או הירשמו כדי לחפש.
                                    • פוסט ראשון
                                      פוסט אחרון
                                    0
                                    • דף הבית
                                    • קטגוריות
                                    • פוסטים אחרונים
                                    • משתמשים
                                    • חיפוש
                                    • חוקי הפורום