עבור לתוכן

הגנה על SQL

Featured Replies

פורסם

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

פורסם
  • מחבר

זה מה שחבר שלי ענה לתגובה שלך גבריאל:

שגם שהאתר היה סגור היה אפשר לעשות SQL INJECT

פשוט אין הגנות לשרת איחסון

השרת מאוחסן ולא שמתי שום FIRE WALL או שום אנטי וירוס

והאתר כולו מנותק מהSQL

מה עוד הוא יכול לעשות?

פורסם

הערה-אני ממש לא יודע איך להשתמש בSQL כמאגר מידע ביחד עם אתרים

אין אפשרות לוודא את מקור הבקשה? ורק לבצע אותה אם היא מגיע מן האתר

או לשלוח עם האתר keyword כלשהו כך שבקשה שלא הגיע עם הקיוורד לא תתבצע

פורסם
  • מחבר

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

פורסם

SQL Injection זו התקפה מאוד ספציפית, ועדיין לא הבנתי אם לזה הכוונה.

זה יכול לקרות כאשר השרת מקבל קלט מהמשתמש ומשתמש בו כדי לייצר פקודות SQL ל- Database.

לדוגמא - אם למשתמש יש תיבת טקסט שהוא אמור להכניס שם משתמש וסיסמא, והשרת מרכיב אותה בצורה -

select * from users where username= "+userName+" and password = "+password;

אז יוזר מעצבן במיוחד יכול להכניס ב- username שלו משהו כמו

." OR 0=0;drop table users;--

והופ, הלכה טבלת היוזרים.

הפיתרון הנכון לזה הוא אף פעם לא להרכיב את ה-query בעצמך, ותמיד להשתמש בפרמטרים של SQL..

הפתרון הלא-משהו הוא לדאוג שבקלט יש רק את התוים שאתה מרשה (למשל - רק תוים אלפא-נומריים).

והנה מה שיש ל- XKCD לומר בנושא:

exploits_of_a_mom.png

פורסם

הפיתרון הנכון לזה הוא אף פעם לא להרכיב את ה-query בעצמך, ותמיד להשתמש בפרמטרים של SQL..

מה זאת אומרת לא להרכיב את הquery בעצמך?...

פורסם

ובצורה הזאת אי אפשר בכלל לבצע SQL INJ ?

פורסם

בדיוק.

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

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים