תוכן שאני לא רוצה - בדיקת התוכן הנכנס

כל תוכן שהוא לא מה שאני רוצה

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

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

 

חשוב - sql parameters

חשוב לדעת וליישם, כל דטהבייס מסוג sql כלשהו, שאלא אם כן אתם יודעים אחרת כנראה שיש לכם אחד כזה, יש פתרון בשם sql parameters, ואתם חייבים לדרוש מהAI שלהם להשתמש רק בזה להכניס תכנים, זה פותר 99% מהבעיות. תשאלו את הAI איך זה עובד, זה מגניב.

 

בדיקת חוקיות התכנים הנכנסים

למעשה החלק הזה הוא החלק העיקרי שהוא ממש בידיים שלנו. רוב ההמשך יתמקד בכלים קיימים להגנה על השרת והשירות והAPI שלנו. אבל החלק הזה, הוא 100% עלינו.

כאשר מתכננים API, פירושו של דבר שאנחנו מתכננים נקודות קצה פתוחות לעולם כולו, שבוא אנחנו מבקשים מאנשים לשלוח לנו מידע פנימה ישירות אל תוך הקוד שלנו, השרת שלנו, הDB שלנו.

תחשבו שאתם עושים ארוע ואתם מזמינים חברים.

מי יכול להכנס? אם זה ארוע סגור, רק למי שיש הזמנה (היינו יוזר שעשה לוגין, אולי אפילו שילם, וכן הלאה, ראו פרק אימות הרשאות אימות זהות). וכמובן רישום ברור מי נכנס - לוגים מלאים כל הזמן.

ואם זה ארוע פתוח לציבור? שמים איזה שומר, וחוסמים את מי שנראה חשוד, עם נשק (תוכן שנראה זדוני, קוד, תוים מיוחדים, עולם ה injection), מי שנראה מלוכלך (תוכן שנראה לא תקין, מילות מפתח), מי שנראה עם כוונה לא טובה (בקשות חוזרות מאותו ?IP? headers).

כל אלו פעולות שאנחנו חייבים לבקש מהAI שלנו לעשות בקוד שלנו.

 

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

 

ראשית - בדיקת תכנים. האם הטלפון הוא טלפון. זהו. 

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

שלישית - מילות מפתח. הן לקוד, הן לספאם, רשימת מילים "מכוערות" (מחילה מכבודכם אבל המילים שמתחילות ב s, f, ועוד, הAI שלכם ידע טוב טוב לעשות רשימה). זה כולל מספרים, ruben123456 זה לא שם.... צריך מחשבה על הדברים האלו, ודווקא זה דברים שהAI קל לו לעשות חיפוש באינטרנט ולתת המלצות ועם הזמן והיוזרים שמתלוננים או הלוגים שתראו, תעדנו או תקשיחו.

רביעית - בדיקת הhttp request עצמה, הרי כאשר המשתמש שולח לנו דברים לשרת שלנו זה נקרא request ובד"כ נעשה ע"י http, ויש לזה כמה חוקים כגון "כותרות" headers היינו כותרות ותכנים להגנה בסיסית

זה כולל origin, content-type, user-agent, cookie ועוד ועוד, תתנו את זה לAI ותשאלו אותו איזה עוד headers יש, ושווה לשים פשוט פילטר (קוד לפני כל כל הבקשות) שתמיד יוודא שכל בקשה מגיעה עם כל הכותרות החוקיות שכל דפדפן מוציא תמיד.

לסיום דברים קצת מתקדמים זה נניח לתעד את הIP שממנו מגיעה הבקשה, מעבר לכלים שבודקים דברים כאלו, אתם גם יכולים לחשוב מתי יותר מדי בקשות מאותו IP, אחרי שהתוכנות הגנה עצמו "מתקפה" (בד"כ משהו כמו יותר מ3 בקשות במשך 1 דקה, לדוגמא) אתם גם חוסמים או מסמנים את היוזר?

שווה גם פשוט לתעד הכל ואחכ לתת לAI לחקור את ההיסטוריה ולהפיק לקחים, הם יודעים יותר טוב להפיק לקחים ממידע קיים מאשר לחשוב מראש על העתיד.

 

 

 

 

 

 

 

«    1  2  3   (...6)    »