
Html.AntiForgeryToken(). הוא יוצר שדה מוסתר עם מפתח רנדומלי ארוך שהשרת יוצר.ValidateAntiForgeryToken, שמשווה את המפתח שהגיע לטופס למפתח שמופיע בעוגיה של המשתמש.הטקסט המלא של הדקות הראשונות בהרצאה «אבטחה - MVC Security - חלק 6» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
הדבר הבא שאנחנו הולכים לטפל בו בעולם הסקיוריטי זה איום שנקרא Cross-Site Request Forgery, כלומר זיוף של ריקווסט, כאשר הזיוף מתבצע על ידי מיטוב הריקווסט של המשתמש למקום אחר.
קוראים לזה גם CSRF, שזה קיצור של Cross-Site Request Forgery. עכשיו, מה זה בדיוק? מה שקורה זה שאנחנו מרימים אתר לאוויר. יכול להיות שיש איזשהו לקוח שהוא דווקא לקוח הגון, לא האקר או לא שום דבר, יש לו חשבון באתר והוא גולש לאתר שלנו עם החשבון שלו, מבצע רישום, מכניס יוזרלם ופסוורד ונכנס לאתר בתור הוא עצמו.
ואז האקר, איכשהו גורם לו להיות מנותב על ידי זה שהוא נותן לו איזשהו לינק באימייל או כל שיטה אחרת, גורם לו לנתב את עצמו לבצע ריקווסט לאתר שהאקר ירים להעביר ולכן אותו בחור הגון מצליח לבצע איזשהו ריקווסט לאתר של ההאקר
ההאקר לוקח את הריקווסט שלו, את הפרטים שלו ומתחזה אליו ואז שוב פעם גולש לאתר שלנו כאילו שהוא הבן אדם המקורי וכמובן אם הוא מתחזה לבן אדם המקורי אז הוא יכול ללכת ולשנות לו את הפסמה, לבצע לו פוסטים לכל מיני מקומות להוסיף מוצרים, לעדכן מוצרים, למחוק, לבצע ככל העולה על רוחו כאילו שהוא הבן אדם המקורי
כי הוא לקח לו כביכול את הריקווסט בצורה כלשהי ומתחזה אליו. אז כל הסיפור הזה נשמע מאוד מאוד מורכב אבל הפתרון שלו הוא מאוד מאוד פשוט.
הפתרון מורכב פשוט מאוד ממפתח סודי שאנחנו צריכים לשתול בכל ריקווסט וכאשר המשתמש מבצע פוסט האתר משווה את המפתח שהוא נתן לו למפתח שהוא קיבל ממנו, וזה מתבצע בסך הכל שתי פקודות.
פקודה ראשונה, אנחנו צריכים ללכת ל-views,