הזרקת SQL

מְחַבֵּר: Peter Berry
תאריך הבריאה: 13 אוגוסט 2021
תאריך עדכון: 22 יוני 2024
Anonim
הזרקת sql injection
וִידֵאוֹ: הזרקת sql injection

תוֹכֶן

הגדרה - מה המשמעות של הזרקת SQL?

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


מבוא ל- Microsoft Azure ו- Microsoft Cloud | במהלך מדריך זה תוכלו ללמוד על אודות מיחשוב ענן וכיצד Microsoft Azure יכולה לעזור לכם להעביר ולנהל את העסק שלכם מהענן.

Techopedia מסביר את הזרקת SQL

בואו נעבור דוגמא להתקף הזרקת SQL:

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

בחר שם לקוח, טלפון, כתובת, תאריך_לידה WHERE social_sec_no = 23425

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

משתמש עם ידע ב- SQL עשוי להבין את היישום ובמקום להזין ערך יחיד כאשר יתבקש את מספר הביטוח הלאומי, הזן את המחרוזת "23425 או 1 = 1", המועברת למסד הנתונים באופן הבא:

בחר שם לקוח, טלפון, כתובת, תאריך_לידה WHERE social_sec_no = 23425 או 1 = 1

סעיף WHERE חשוב מכיוון שהוא מציג פגיעות. במסד נתונים, התנאי 1 = 1 תמיד נכון, ומכיוון שהשאילתה צוינה להחזרת פרטי מספר תעודת הזהות של הלקוח (23425) או WHERE 1 = 1, השאילתה תחזיר את כל השורות בטבלה, שלא הייתה כוונה מקורית.

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

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