Command Palette

Search for a command to run...

מילון מונחים SQL Injection (SQLi)

מהי הזרקת SQL (SQLi)?

הזרקת SQL (SQLi) היא סוג של התקפה שבה תוקפים מזינים פקודת SQL זדונית לשדה קלט כדי לתמרן את בסיס הנתונים.

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

כיצד פועלת הזרקת SQL

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

לדוגמה:

SELECT * FROM users WHERE username = 'admin' AND password = '12345';

תוקף יכול להזין:

' OR '1'='1

מה שמוביל ל:

SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '';

זה תמיד מחזיר אמת, ומעניק גישה לא מורשית.

מדוע הזרקת SQL חשובה באבטחת סייבר

הזרקת SQL היא הטכניקה המסוכנת והוותיקה ביותר באבטחת סייבר. סוג זה של התקפה מופיע בעקביות ברשימת ה-OWASP Top 10.

אפילו פגיעויות קטנות מאפשרות לתוקף ל:

  • גישה, שינוי או מחיקה של נתונים
  • עקיפת אימות
  • ביצוע פעולות ניהוליות על בסיס הנתונים.
  • פגיעה במערכת כולה.

סוגים נפוצים של הזרקת SQL

  • SQLi קלאסי : הזרקה ישירה דרך טפסי אינטרנט או פרמטרים ב-URL.
  • SQLi עיוור : תוקפים מסיקים מידע על בסיס הנתונים בעקיפין (למשל, דרך הודעות שגיאה או זמן תגובה).
  • SQLi מבוסס איחוד : משתמש באופרטור UNION כדי לשלב תוצאות ממספר שאילתות.
  • SQLi מבוסס שגיאה : מסתמך על הודעות שגיאה של בסיס הנתונים כדי לחלץ מידע.
  • SQLi עיוור מבוסס זמן : מנצל עיכובי תגובה של השרת כדי לנחש תוצאות שאילתה.

כיצד למנוע הזרקת SQL

1. שימוש בשאילתות פרמטריות (הצהרות מוכנות)

ודא שפקודות SQL מתייחסות לקלט משתמש כנתונים, לא כקוד ניתן לביצוע.

cursor.execute("SELECT * FROM users WHERE username = ?", (username,))

2. אימות וניקוי קלט

אמת את כל הקלט מהמשתמשים, אפשר רק תווים צפויים.

3. שימוש במסגרות ORM

מסגרות כמו Prisma, Hibernate, וכו’, מפחיתות את הטיפול הישיר ב-SQL.

4. עקרון המינימום של הרשאות

הגבל הרשאות משתמש, תן רק את ההרשאות הנדרשות.

5. בדיקות אבטחה סדירות

השתמש בכלי בדיקות אבטחת יישומים כמו SAST, DAST או IAST כדי לזהות פגמי הזרקה מוקדם.

דוגמה בעולם האמיתי

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

מונחים קשורים

Next Steps

מוכן לאבטח את היישומים שלך? בחר את הדרך שלך קדימה.

הצטרף ל-500+ חברות שכבר מאבטחות את היישומים שלהן עם Plexicus

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready