![]() |
יש להשלים ערך זה: בערך זה חסר תוכן מהותי.
| |
יש להשלים ערך זה: בערך זה חסר תוכן מהותי. | |
הזרקת קוד (באנגלית: Code Injection) היא טכניקת האקינג המנצלת חולשת אבטחה בתוכנה המאפשרת את שינוי מהלך הביצוע שלה. הדבר נעשה באמצעות העברת קלט לא צפוי, המכיל פקודות זדוניות, שמבוצעות כחלק מביצוע התוכנית. טכניקות נפוצות של הזרקת קוד כוללות הזרקת SQL למסדי נתונים ו-XSS לאתרי אינטרנט. הזרקת קוד נובעת לרוב מכך שהתוכנית אינה מבצעת בדיקת תקינות של קלטים המועברים אליה.
התקפות הזרקת קוד נפוצות מאוד במערכות המתוכנתות בשפה מפורשת (שפת interperter) או שפת תסריט (script) כגון PHP ,SQL ,Perl שנפוצות מאוד בפיתוח ישומי web. עם זאת ניתן לבצע התקפות הזרקת קוד גם במערכות המבוססות שפות תכנות מהודרות כגון התקפת גלישת חוצץ (Buffer Overflow attack).
המידע שמספק המשתמש משמש[1], לעיתים קרובות, כקלט עבור תוכנה שנכתבה בשפה מפורשת. הקוד שמבצע המפרש (interperter) הוא שילוב של פקודות שנכתבו מראש על ידי מפתח התוכנה ומידע שמסופק על ידי המשתמשים. התוקף, באמצעות תכנון קפדני, שותל בקלט מידע שיש לו משמעות בשפת התכנות. כתוצאה מכך המידע מפורש כהוראות בשפת התכנות, ופקודותיו של התוקף מבוצעות כאילו נכתבו על ידי מפתח התוכנה המקורי[2]. דרך הפעולה משתנה בין התקיפות השונות. בתקיפת SQL injection השימוש הוא בשפת SQL על מנת למצוא פרצות בהוראת שליפה שנשלחת אל מסד הנתונים. בצורה כזו ניתן לבצע שליפה ממסד הנתונים על פי רצון התוקף ו"לדרוס" את השאילתא שהייתה אמורה להתבצע.
כדי למנוע בעיות של הזרקת קוד, יש להשתמש בשיטות לטיפול מאובטח בקלט ופלט, כגון: