3192
צפיות
צפיות
4
תשובות
תשובות
צריך עזרה בבדיקת אבטחה של האתר …
אני צריך שתעזרו לי לבדוק כי אני עברתי כמעט על הכל אם יש פרצות אבטחה באתר למשל אם משנים למעלה את הערך של המשתנה האם זה נותן לך להיות מנהל וכל מיני דברים זה האתר:
http://godzilla.s-host.org/index.asp
למשל פה
https://webmaster.org.il/forums/addMessage.asp?ForumId=3&id=
אם משנים את ה FORUMID לID שלא קיים אם זה כותב הודעה..
תודה לכל העוזרים 😀 אולי נעשה מזה FAQ בסוף?
שיגיד לבוני אתרים ממה להזהר
4 תשובות
תבדוק את הערכים
המתקבלים לשדות.
לא משנה איזה שדה (אם נשלח דרך שורת הכתובות [קישור] או דרך טופס) תבדוק כל שדה מה הוא מכיל.
למשל ששדה שצריך להכיל מספר יכיל אך ורק מספר ולא אותיות או תווים אחרים.
תבדוק ששדה כמו שם משתמש יכיל תווים ראויים לשם משתמש (למשל רק אותיות ומספרים וקו תחתי או רווח).
צריך לבצע משפטי תנאי על שדות מסוימים שצריך לבדוק ובמידה והתגלתה שגיאה (שדה מכיל תו שלא צריך להכיל) תכיל בתוך השדה ערך ברירת מחדל או תציג שגיאה למשתמש.
אני פשוט עשיתי שזה מקבל תמספר אם זה
ריק או אם זה RS.EOF.. אז תקלה בנתון..
לא צריך להסתבך יותר מידי 😀 אני רק מחפש דברים שנפלתי בהם שלא שמתי לב
יש לי הצעה קטנה (או גדולה) בשבילך
כל ערך שאתה משרשר לשאילתת SQL כלשהי, לא משנה אם הנתון הוא מחרוזת או מספר, ולא משנה אם השאילתה היא שליפה, הוספה, עדכון או מחיקה, תבצע החלפה של גרש בפעמיים הגרש. אתה לא יודע כמה בעיות זה פותר.
אצלך באתר, אם תכתוב ' or 1 or ' בחיפוש יוחזרו כל הרשומות, אבל אם תהיה לך ההחלפה של כל גרש בפעמיים גרש זה לא יקרה.
דוגמא להחלפת הגרש בפעמיים הגרש:
x = Request.QueryString("searwords")
x = Replace(x, "'", """)
אתה בטח שואל את עצמך למה זה קורה?
זו פרצת ה- SQL הכי ידועה שקיימת, קוראים לה SQL Injection ותוכל לקרוא על זה בהרחבה במאמר הבא:
בהצלחה!
ההודעה הזו מתאימה יותר לצד שרת לפי
דעתי,
כי אבטחה זה בדרך כלל נושא של צד שרת… אני אישית לא מכיר בעיות אבטחה בצד לקוח.