
הטקסט המלא של הדקות הראשונות בהרצאה «XSS - הגנה נגד פריצה לאתר» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בסרט הזה אנחנו ניצור בעצמנו אתר אינטרנט ונבצע עליו התקפה XSX של JavaScript ונראה איך מגינים נגד ההתקפה הזאת ונדבר בעצם מה יוצר את כל הבעיות האלו, ממש נעשה את זה לבד.
אז קודם כל למי שאין Visual Studio Express או Visual Studio, אז שיוריד את זה מאתר של מייקרוסופט, אפשר להוריד את זה חינם מאתר של מייקרוסופט, את הגרסת האקספרס שלהם, שזה יספיק לנו.
אני כבר הורדתי והתקנתי ואנחנו הולכים ליצור עכשיו אתר אינטרנט חדש ואחרי זה נגן עליו, נתקוף אותו ונגן עליו ונעשה הכל בעצמנו.
ידע בתכנות מוקדם זה ממש מומלץ אבל זה לא חומה, אני הולך ממש להראות הכל ואנחנו לא כל כך הולכים לרשום פקודות אלא לעשות רק את המינימום הנדרש כדי שתבינו את העיקרון איך מגינים, איך תוקפים ואיך מגינים שזה יותר חשוב.
למה זה חשוב שתבינו איך מגינים? כי אתם אלו שהולכים להגיד בסופו של דבר לא רק איך לתקוף ויש פה בעיה, גם איך להגן. וזה הערך האמיתי שלכם לחברה, זה ה-added value שלכם לחברה, שאתם אומרים להם גם איך להגן, כי המתכנתים בקורס תכנות לא כל כך לומדים את זה.
אז אנחנו נעשה פרויקט חדש, ונעשה דף של ASP.NET. גם ב-MVC זה הכל אותם עקרונות, תתרכזו בעקרונות. אז אנחנו נפתח איזשהו פרויקט נקי, אמפתי פרויקט נקי לחלוטין, sb.net, אמפתי וב פייג', אוקיי, נעשה אותו נקי לחלוטין, שלא יהיה בו כלום.
יופי, אז פתחנו פרויקט נקי. אל תיבהלו למי שאין רקע בתכנות או שרואה את זה פעם ראשונה, אתם צריכים להתרכז בעקרונות ולא להיבהל. תראו, הבעיה האמיתית בתחום אבטחת מידע שהמתכנתים בקורס תכנות לא לומדים את הנושאים האלו, זה פשוט לא נכלל ברשימת הנושאים שלהם, לומדים זאת כל הבעיה ואז לכן בעיות אבטחה אף פעם לא ייעלמו כי
תמיד יוצאים לשוק מתכניתים חדשים שפשוט לא יודעים כלום בתחום אבטחת מידע כי זה לא חלק מחומר הלימוד שלהם או מקסימום יש להם איזה שיעור אחד על זה וזהו וגם משלמים להם כסף לא על מוצר ממובטח אלא על זה שהוא עובד והלקוח בא ואומר תעשה לי את המוצר תקבל כסף ואתם כאנשי אבטחת מידע או כבודקים צריכים
לבוא לזהות את הבעיה וגם להגיד להם איך לתקן אותה או לפחות להבין לאן צריך ללכת אנחנו בהרצאה הזאתי נראה מה זה עם קודים מה זה קידודים וכל מיני פתרונות איך פותרים את הבעיה של התקפה מסוג ג'אווה סקריפט אז תראו יש לנו כרגע פה אתר ריק כן אתר אינטרנט ריק שאין עליו כלום אפילו דף אחד אין ואנחנו עושים רייט קליק מוסיפים מוסיפים דף חדש ניו אייטם דף חדש ואנחנו צריכים דף
שנקרא וב פורם טופס כן נקרא לו אינדקס אז יש לנו עכשיו בעצם אתר אינטרנט שהוספנו לו דף אחד עם טופס בפנים ואנחנו הולכים להוסיף לטופס הזה שדה אחד שבו הבן אדם מכניס את השם שלו פה אנחנו יכולים לכתוב פה עצם את הפקודות אתם רואים הכי חשוב שיהיה פורום זה דף html תקיד זאת הכותרת שלו ואני לא הולך להסביר לכם את כל הקורס תכנות
יש לנו קורס תכנות ב-sp.net אנחנו עושים רק את המינימום הנדרש יפה מאוד אז אתם תראו מה שעשיתי, לחצתי פה ספליט ואני רואה חצי מסך תצוגה גרפית סופית וזה הקוד שהולך להיכתב במסך.
אז נתחיל מזה שיש לנו תיבת טקסט, טקסט בוקס, איפה הטקסט בוקס שלנו? שבו המשתמש מכניס בעצם את השם שלו, טקסט בוקס, אתם רואים הוא כתב במקומי את הקוד הזה, שתווית של טקסט בוקס זה השם, זה המזהה שלה, לא משנה כל כך עכשיו, אני יכול להרחיב אותה ואז הוא מוסיף פה ווידס,
176 אני יכול גם לכתוב פה ידנית בקוד שאני רוצה 200 200 ואז אני עושה סייב פה ctrl s וזה גם מתעדכן כאן יפה יופי נרשום בתוך התווית הזאת נרשום את השם שלי יוני יפה אם אני שומר זה מתעדכן פה אתם רואים זאת תצוגה יפה אז יש לנו כרגע דף אינטרנט אחד פה אתם רואים את הדפים שיש לנו דף אינטרנט אחד וקובץ הגדרות דף אינטרנט אחד
ובו כתוב תווית מקום להכניס טקסט. אנחנו נכניס גם כפתור, קפתור הזה בעצם כרגע לא הולך לעשות כלום, אבל אנחנו נצטרך אותו כדי לרענן תצוגה. כן, כשאתם לוחצים על כפתור, הפקודה מהמשתמש נשלחת לשרת וחוזרת חזרה, ואני צריך שזה יחזור חזרה.
רק בואו נשים את זה למטה. בסדר, בואו נשים את זה פה, בסדר. ודבר אחרון, אני צריך תווית שמציגה לי את השם שלי. זה כל האתר שלי.
פה מכניסים את השם, בן אדם שנרשם מכניס את השם, לוחץ אוקיי, והאתר צריך לכתוב לו ברוך הבא לאתר האינטרנט שלנו. יפה.
אז יש לנו פה בתוך הטופס, אתם רואים, אנחנו בתוך הטופס, מפה עד לפה זה טופס, יש לנו טקסט בוקס שבו מכניסים את השם, כפתור, שפה אתם רואים, על הכפתור נרשום טקסט, איפה הטקסט שלנו?
טקסט נרשום אוקיי יפה טקסט אוקיי כפתור ותביא אותי מהשם יפה מאוד דבר היחיד שאני רוצה זה ככה קצת לסדר את זה ויזואלית שיהיה לנו יותר יפה אז אני אני אקח כל אחד אני אעשה לו מעין אזור אישי שלו זה נקרא לעשות דיב דיב זה טוב תראו קורס html קורס ה-sp.net מי שממש רוצה להבין את כל הזה אני פשוט
מסדר את זה ויזואלית שיהיה לנו יפה עשיתי רק דיבים רק שהם יהיו יפים ועכשיו הם יהיו מסודרים אחד מתחת לשני כל אחד יש לו אזור משלו ואני יכול גם לעשות ביניהם מרווחים אני יכול לעשות ביניהם מרווחים סטייל זה אתם לא חייבים זה ממש לא חובה זה פשוט מרג'ין נעשה לו 20 פיקסלס מכל
צד שיהיה לו ככה מרווח מכל הצדדים של 20 פיקסלים 20 יופי אתם רואים יש לנו מרווחים מרג'ין 20 פיקסלס שכחתי לסגור את הגרשיים זה עיצוב כזה שהוספתי לו קצת עיצוב שיהיה לנו מרווחים במסך אתם ממש לא חייבים את זה בשביל להבין את העיקרון אז יש לנו פה אזור שבו מכניסים שם לוחצים אוקיי ותחשבו שיש עוד הרבה דברים אחרים באתר האינטרנט
אבל זה מה שאנחנו הולכים להתרכז בו יפה בואו נריץ את זה יפה בואו נריץ את זה ונראה מה קורה חברה מי שמתעניין בתכנות יש לנו קורס תכנות מלא ואנשי אבטחת מידע חייבים לפחות קצת להבין בתכנות ובמיוחד באזורים הבעייתיים יופי אני נניח כבר יש פה יוני, הנה אני מכניס יוני, עושה אוקיי, זה הולך לזה ואמור לרענן את התווית,
אבל לא כתבתי את הקוד שמרענן את התווית, שכחנו לעשות את זה. אפשר לא לעצור את האתר, אפשר לעדכן אותו. אני אומר לו דבר כזה, תשים פה, בואו נעשה את זה, זה נקרא בשפת sp.net, משהו שהוא שווה לטקסט בוקס אחד יקודה טקסט.
זאת אומרת, תביא את זה, מתכנתים אומרים למה אתה לא מחליף שם לשם בעל משמעות עזבו אתכם משטויות כרגע אני לא אומר לו תקשיב תשים בתוך התווית הזאת בתוך הלייבל הזאת את הערך שבתוך תיבת טקסט יפה מאוד יופי בואו נשמור את זה קונטרול s שאמרתי כוכבית פה נעלמה ואני מעריץ את זה שוב יפה מאוד עכשיו אני כותב יוני או יונתן יונתן עושה אוקיי אתם רואים זה הולך לשרת חוזר ומקבל את הערך
החדש הכפתור הזה לא עושה כלום הוא ברירת מחדל שלו זה ללכת לשרת לשלוח את כל המידע ולקבל חזרה יופי להתרענן אפשר להגיד אם אני אכתוב פה a אז יש לנו פה יפה עכשיו שימו לב מה אני במקום אני האקר הגעתי לאתר כזה אני רואה את זה מה הדבר הראשון שאני עושה אני בודק האם הוא חשוף להתקפה של קרוס סייט סקריפטינג xss אז אני במקום השם מכניס פה סקריפט וכותב
פה נניח לפני אני כותב בי בי בי כותב סקריפט זה סתם בשביל לבדוק איך הוא יגיב סקריפט של ג'אווה סקריפט שיכתוב נניח פה האקט נפרצת עכשיו זה יהיה רק אצלי על המסך אם זה יעבוד ובסוף בי בי בי תסתכלו מה יקרה הופה קודם כל קיבלנו הודעת שגיאה וכתוב פה
ש a potential dangerous request form value detected with the client.net קודם כל בא ברירת מחדל שלו להגן עלינו הוא בא להגן עלינו ואומר תקשיב אני לא מאשר בקשה כזאת קודם כל יש לו הגנה ביי דיפולט עכשיו ההגנה הזאת היא מצוינת אתם רואים היא באמת הצילה אותנו במקרה הזה אבל יש כל מיני רכיבים שהמתכנתים משתמשים
בהם שההגנה הזאת מפריעה להם לעבוד והם מורידים אותה איך מורידים את ההגנה הזאת בואו אני אראה לכם נכתוב את זה בגוגל ממש אני לוקח את הודעת השגיאה מעתיק אותה לגוגל והולך לחפש איך להוריד אותה דרך אגב זה מה שקורה בהרבה מאוד פעמים
שהמתכנת מוריד אבטחה בלי שהוא בכלל מודע מה זה אומר, כן? הוא אומר, יאללה, זה משהו שמפריע לי לעבוד, אני מוריד את זה, הוא לא מודע לכל הסיפור הזה.
יפה מאוד. אז הנה מצאתי פה איך להוריד אותה, תכף אני מראה לכם, שימו לב, בכותרת למעלה, אני אומר לו, מוסיף לו פה, ש-validation request, בדיקה של הבקשה של המשתמש, false.
אל תבדוק לי את הבקשה של המשתמש. ועכשיו מה שיקרה, שאני אעשה לו לרענן, בואו נעשה פה לרענן. הוא אומר לשלוח את זה שוב לשרת, כן.
הופה, קפצה לנו הודעה hacked. זה אומר שJavaScript עבד. יפה. זה אומר קודם כל שאנחנו חשופים להתקפה. בואו נעשה את זה רק יותר רחב קצת. במקום 200 פיקסלים נוסיף פה 300 פיקסלים כאופי.
ונעשה פה hacked. הנה דף התרענן וזה נהיה רחב. יפה. אז יש לנו פה את השם של הבן אדם, ההתחלה שלו.
את ההתחלה של השם שלו. ובסוף הוא הוסיף חוץ מהשם שלו גם את הסקריפט. ומה הבעיה? הבעיה היא שכשזה חוזר חזרה לדף הזה, אחרי שזה נשלח לשרת זה חוזר חזרה, התווית הזאת פה מכניסה את הטקסט הזה פה.
תסתכלו, זה מכניס את הטקסט. הנה, אתם רואים פה. זה מכניס את זה לתווית פה. והראשון שבא לעבוד, הראשון שבא להתבצע זה JavaScript.
תחשבו שהמנוע של דבדפן קיבל את כל מה שאתם רואים עכשיו על המסך, את כל הקוד הזה והדבר הראשון שהוא עושה הוא מפעיל ג'אווה סקריפט, את המנוע של ג'אווה סקריפט והמנוע של ג'אווה סקריפט אומר, הופה יש פה הודעה בשבילי המנוע של ג'אווה סקריפט לא מעניין אותו כל מה שקורה מסביב באתר הוא מזהה שיש סקריפט בשבילו, הוא אומר, יפה,
אני מריץ אותו ופה נוצרת הבעיה שבן אדם בשם שלו הכניס סקריפט והדבר הראשון שעבד זה הסקריפט הזה הג'אווה סקריפט הבנתם יפה אז איך אנחנו בעצם נפתור את הבעיה הזאת איך אנחנו איך אנחנו נפתור את זה שימו לב מה הטריק הטריק זה לקודד את הסימן המיוחד הזה וברגע שאנחנו מקודדים אותו במשהו אחר ברגע שאנחנו מקודדים אותו
במשהו אחר ואני כבר אגלה לכם תסתכלו למעלה טקסט בוקס עשה את זה אוטומטית תסתכלו מה קרה בטקסט בוקס נכון בטקסטבוקס כתוב סקריפט שימו לב מה הוא עשה טקסטבוקס עושה את הפעולה הזאת אוטומט פשוט והתווית לא עושה שימו לב במקום נכון אתם זוכרים באתר מה כתוב באתר בתוך
התווית כתוב אחרי יוני חץ זה וסקריפט אוקיי תסתכלו מה זה הקידוד הזה הקידוד הזה זה נקרא encoding והוא בא לפתור את הבעיה זה נורא חשוב שתבינו הקידוד הזה בא והופך את הסימן קטן הזה זה סימן קטן למחרוזת כזאת של תווים end-alt-lt ונקודה פסיק עכשיו מה קורה ג'אווה סקריפט מגיע מסתכל על
הדבר הזה אומר טוב זה לא בשבילי כי זה לא אני מחפש כזה דבר אני לא רואה אני רואה את הדבר הזה זה לא בשבילי כנראה זה משהו אחר אני לא מבין את זה זה לא קשור אליי הוא לא נוגע בזה כי זה מקודד ואז הקוד הזה הוא לא מתבצע וברגע שהוא לא יתבצע זה עובר הלאה בתוך הדפדפן והמנוע הבא בתוך הדפדפן שתופס הזה זה מנור של ההצגה ובזמן ההצגה בלבד אחרי שג'אווה סקריפט כבר עבד
הדבר הזה מוחלף בחזרה לסימן כזה הבנתם? זאת אומרת כשהמידע מגיע הוא צריך להגיע בצורה כזאת בצורה מקודדת encoding ואחרי שהוא מגיע בצורה מקודדת אנחנו לוקחים והופכים אותו בתצוגה חזרה שימו לב כמה פשוט זה אולי תכף תראו את זה ותראו כמה שפשוט זה נקרא
sp.net html encoding אנחנו מקודדים מידע עבור html זה נקרא html encoding הנה יש פה גם באתר של מייקרוסופט encoding עכשיו הרבה מתכנתים לא מודעים לזה ולמה זה מסוכן ובכלל לא טורחים לקודד את המידע אז אנחנו לוקחים פונקציה html encode ומקודדים את המידע בואו נעשה את זה
הנה יש לנו דוגמא אתם רואים html encode בואו נעשה את זה מה זאת אומרת? אנחנו אומרים לתווית הזאת, כן, אתם זוכרים מה קורה עכשיו? כרגע, לפני שאני עושה שינוי, אני רוצה רק לוודא שאתם זוכרים.
אני עושה פה, פה סקריפט, יוני סקריפט, ואז קופצת לי הודעה, האקט. שנייה, איפה האתר? עצרתי את האתר. האתר לא נמצא בהרצה, אתם רואים?
עשיתי סטופ לאתר. הנה, עכשיו האתר עובד אצלי פה. אני עושה סקריפט והאקט. זה אומר שג'אווה סקריפט עבד. מה זה הג'אווה סקריפט עבד? זה אומר שיכול להיות שהוא גנב לי קוקי, כן?
יכול להיות שהוא יכול להתחזות למשהו. נניח הוא יכול, זוכרים, כן? עם לינק הוא יכול לגנוב לי קוקי מתוך המחשב הג'אווה סקריפט. הוא יכול לשאול את היוזר התמים מה השם והסיסמה שלך באתר הזה, והיוזר התמים יכניס את השם והסיסמה כי הוא רואה שהוא בתוך אתר שהוא צומח עליו.
ולמעשה, הקוד הזה של ג'אווה סקריפט הוא בכלל מאתר אחר, מאתר של האקר, ואז הוא גנב לו את השם והסיסמה. ברגע שאתה שותל JavaScript בתוך האתר, ברגע שאתה מכניס JavaScript, אז בעצם למעשה אתה עושה שם, בתוך האתר הזה, מה שבא לך.
אתה יכול לגנוב לינקים, אתה יכול להכניס פסים, צורות, מה שאתה רוצה אתה יכול לעשות באתר עם JavaScript. כי זו המטרה שלו, אוקיי?
לשפר את החוויה של המשתמש בדפדפן. יפה, אז אנחנו רוצים לקודד את הדבר הזה, אוקיי? הבנתם? עכשיו כרגע JavaScript מופעל וזה מאוד מסוכן, אנחנו רוצים שזה לא יופעל.
יופי. אז אנחנו הולכים פה ולפני שאנחנו מציגים את המידע אנחנו אומרים תקודד אותו. תקודד אותו, יפה. ברגע שאנחנו בעצם מקודדים אותו הוא אומר שהוא לא מכיר html in code.
למה הוא לא מכיר html in code? בואו נראה באיזה קלאס זה נמצא, ככה? כן, ככה. פשוט הוא אומר איפה זה נמצא, זה הנתיב הארוך לאיפה שהקידוד הזה נמצא, באיזה מחלקה זה נמצא.
לא חשוב, כן? אנחנו מקודדים את המידע. מה זה אומר שאנחנו מקודדים את המידע? בואו נראה עכשיו נכתוב פה סקריפט הנה יש לנו פה אחד מוכן עושים אוקיי ושימו לב ג'אווה סקריפט לא עבד הוא לא עבד לא קפצה שום הודעה זה אומר שהאקר לא הצליח להפעיל את הקוד שלו באתר כן ופתאום הוא מוצג לו על המסך למה בעצם הקוד הזה לא התבצע מה השתנה פתאום
למה פתאום זה מוצג כמידע ולא התבצע בואו תסתכלו פייג' סורס את המקור של המידע אתם יכולים לראות פה שבתוך התווית הזאת שהייתה לפני כן יוני פתאום במקום חץ סימן קטן יש את הכידוד הזה אתם רואים הוא כידד גם את הסימן קטן וגם את הסימן הגדול וג'אווה סקריפט לא רואה את מה שהוא מחפש ואחרי שהג'אווה סקריפט עבר על המסמך לא ראה את
מה שהוא צריך ולא עשה שום דבר כי הוא לא ראה אז מופעל המנגנון של תצוגה והמנגנון של תצוגה אחרי שהג'אווה סקריפט עבד בתוך הדפדפן המנגנון של התצוגה מחליף את זה חזרה לסימן הנכון והתוצאה הסופית היא שהקוד של ג'אווה סקריפט הזדוני לא מתבצע באתר אלא כאילו זה שם של
הבן אדם אז זה פותר לנו את הבעיה אז אתם קודם כל צריכים לדעת שמידע שנקלט מהמשתמש אסור כמו שהוא להשתמש בו כן צריך לבדוק אותו יפה מאוד עכשיו איפה יפה פתרנו את הבעיה פתרנו את הבעיה יפה מאוד אבל מה יקרה שימו לב תקשיבו טוב לשאלה שלי, מה היה קורה אילו,
אילו הוא היה שומר את המידע בארדיסק, בדאטאבייס, ב-SQL, אחרי זה מישהו היה שולף את המידע, ואחרי שמישהו שלף את המידע, הוא שמר אותו שוב.
זאת אומרת שאם מישהו שלף את המידע הזה, למעשה, אם מישהו שלף את המידע הזה, ואני עכשיו יצרתי עוד תווית, ומקודד אותו מחדש, שימו לב, זה קידוד כפול.
אני לוקח פה ואומר, תקודד את זה שוב, תקודד את זה שוב. זאת אומרת, תיקח את המידע, תעביר אותו דרך הקידוד הזה, ואחרי זה תקודד אותו שוב.
למה זה יכול לקרות קודם כל? באיזה מקרה זה יכול לקרות? זה יכול לקרות מקרה שבו לקחתי את המידע מהמשתמש, קידדתי אותו כדי שיהיה בטוח בתוך הדאטאבייס, אמרתי שיהיה בטוח שם, או שיש כאן בדאטאבייס כבר מקודד, שאם מישהו ישכח אחרי זה, אז זה ישלוף אותו, עדיין לא יקרה כלום.
אז מישהו שלף אותו, עשה בו שינוי, נניח פקידה עשתה שינוי במידע הזה, שינתה איזשהו מספר ושמרה אותו שוב. מה יקרה? המידע מקודד הגיע לפקידה, היא עשתה בו עריכה בתיבת הטקסט הזאתי ושמרה אותו שוב.
יוצא לנו למעשה קידוד כפול. שימו לב מה יקרה כשיש לנו קידוד כפול. כשיש לנו קידוד כפול, תסתכלו מה קורה, פעם ראשונה הוא מוצג כמו שצריך, פעם שנייה הוא כבר מקודד אותו שוב, תראו איזה ג'יבריש יוצא לנו.
ומה יקרה אם אני אעשה שלושה קידודים? נניח הפקידה שוב עורכת אותו. מה, מותר לה לעשות אדיט על המידע? נניח שזה משהו שצריך לעבוד עם המידע, כן? אנחנו רוצים לעשות עריכה, אנחנו לא סתם יופי.
אז אני פה במקום הטקסט הזה עושה קידוד על קידוד. זאת אומרת, המידע בתוך הטקסט בוקס עובר קידוד, עובר קידוד, עובר קידוד שלוש פעמים.
בואו נראה שיש לנו מספיק סוגריים. כן, יש לנו מספיק סוגריים, אחד, שתיים, שלוש, יפה. עכשיו תסתכלו מה יקרה, תראו איזה בלאגן נהיה לנו.
זאת הסיבה שאסור לשמור מידע מקודד בתוך הדאטאבייס. לא שומרים מידע אחרי קידוד בדאטאבייס. הקידוד הזה מתבצע אחרי שהמידע כבר נשמר, המידע נשמר בדאטאבייס ללא קידוד ומוחזר למשתמש.
זה מאוד חשוב לא לשמור מידע בדאטאבייס אחרי הקידוד. אז איך אני שומר מידע נקי בדאטאבייס? מה נשמור בדאטאבייס את הקוד המסוכן הזה? זאת אומרת כרגע אני אומר לכם דבר כזה תיקחו את הקוד המסוכן הזה תשמרו אותו בדאטאבייס וכשהמידע מוחזר למשתמש רק כשהוא חוזר למשתמש אז רק אז לקודד אותו הבנתם?
זאת אומרת אני אומר לכם לדאטאבייס לא לשלוח את המידע ככה אלא לשלוח אותו בצורה המקורית המסוכנת עכשיו מי שלא רוצה להסתכן לא יעשה ככה אלא וגם לא יקודד אלא ינקה אותו עכשיו עכשיו השאלה, איך מנקים את המידע?
איך מנקים את המידע? אפשר לבד לנקות, לבד לחפש סקריפט, לבד לחפש חטא שמאלה, אבל הניקיון הלבד הזה יש בו המון המון מקום לטעויות.
אז יש לנו דברים מוכנים שיודעים לנקות את המידע שנקלט מהמשתמש, לנקות אותו מכל הסקריפטים, לעשות אותו נקי, ואת המידע הנקי הזה אנחנו נשמור בדאטאבייס ללא JavaScript, פשוט ללא JavaScript.
אז אני חוזר, המידע נקלט מהמשתמש דרך איזושהי תיבת טקסט, לא משנה דרך מה. אנחנו מנקים אותו מכל הסקריפטים, שומרים בדאטאבייס, ואחרי זה כשאנחנו שולפים כדי להציג אותו, אנחנו נעשה קידוד ליתר ביטחון.
שאם עדיין ההגנות שלנו נפרצו, גם בזמן התצוגה נעשה קידוד. זאת אומרת, את הקידוד עושים בזמן התצוגה, אבל לא בזמן השמירה.
יש? זה מאוד מאוד חשוב הקטע הזה, בגלל אחרת המידע יהיה לכם ככה מכוער ועקום, ואחרי זה יהיה מאוד קשה לעבוד איתו. יהיה לכם מאוד מאוד קשה לעבוד איתו.
יפה מאוד. אז איך אנחנו עושים בעצם ניקיון של מידע? יפה, זאת בדיוק השאלה. רק בואו נוריד את זה פה, בואו בכלל נמחק את זה. יופי, אז יש לנו פה כרגע רק את הקוד שמקודד, ואנחנו תכף נראה איך מנקים את זה.
יפה, איך מנקים את זה? אז תראו, אין פה משהו מובנה ומוכן, צריך להוריד את זה מבחוץ. איזשהו כלי חיצוני להוסיף את ה-DLL שלו, להוסיף עליו הפניה ולהשתמש בו זאת אומרת אני יכול ברפרנס פה להוסיף הפניות לכלים חיצוניים ועושים right click, add reference ואומרים קח כלי חיצוני ותשתמש בו עכשיו למזלנו אנחנו ב-2013 יש לנו נאגט מוכן