CSRF tokens
-
קראתי עכשיו על הCSRF טוקן (הגעתי לזה מתוך התיעוד של Django, וקראתי במגוון אתרים נוספים), ולא הצלחתי להבין מפני מה הוא בא להגן.
לדוגמה התיאור שבתשובה הזאת - אני גולש לאתר זדוני, ששולח בקשה במבנה מסוים לאתר אחר שבו אני מחובר כבר, כגון הבנק, וכך הפעולה מתבצעת בשמי.
הרי בשביל להתחזות למשתמש צריך לשלוח את הבקשה מתוך הדומיין של האתר, אחרת הבקשה תיחסם לחלוטין ע"פ מדיניות הCORS.
אם כן מה המטרה של הCSRF?
תודה רבה. -
CORS רלוונטי רק לבקשות שנעשות עם XHR או fetch, לא לטופס רגיל של הדפדפן.
ושום דבר לא מונע ממני לעשות post עם$('<form action="mybank.com/transfermoney.php" method="POST">...</form>').appendTo('body').submit()
לכן צריך אסימון CSRF
-
@חגי אוקיי, מקבל, אם כי זה פחות סיכון כי דף היעד נפתח בדפדפן, וממילא קשה יותר לעשות את זה בלי שישימו לב.
@צדיק-תמים כאשר הדף נפתח בדפדפן זה כבר מאוחר מדי
אגב, היום יש עוד הגנה נגד CSRF, ברגע ששינו את הדיפולט ל-SameSite=lax
https://web.dev/samesite-cookies-explained/ -
CORS רלוונטי רק לבקשות שנעשות עם XHR או fetch, לא לטופס רגיל של הדפדפן.
ושום דבר לא מונע ממני לעשות post עם$('<form action="mybank.com/transfermoney.php" method="POST">...</form>').appendTo('body').submit()
לכן צריך אסימון CSRF