אבטחת חיבור מרחוק ל mysql
-
המקרה: תוכנה שולחנית (#C) שמתחברת מרחוק ושולפת נתון משרת mysql.
כדי שכל לקוח יוכל להתחבר אני מאפשר גישה מרחוק למסד נתונים עבור כל IP.
החשש: הרי בקוד מופיעים פרטי החיבור (שם וסיסמא), אם הלקוח ינטר את החיבור או יפתח את הקוד הוא יוכל לגשת חופשי לכל הדטה בייס..אשמח לקבל לינק, דוגמא או כל הסבר על פתרונות ו/או אלטרנטיבות שונות.
תודהפורסם במקור בפורום CODE613 ב12/07/2015 02:30 (+03:00)
-
כלל ברזל: כל מה שיכולה האפליקציה, יכול גם המשתמש.
ממילא האבטחה לא אמורה להיות כלל ברמת האפליקציה.בצד המסד, וזה די מסובך, צריכה להיות הרשאה רק לפעולות שאתה מרשה לאפליקציה/משתמש לעשות.
כיון שזה מאוד קשה לאכוף אבטחה עדינה במסד נתונים, דרושה תוכנת אמצע שיושבת על השרת ומתווכת ביניהם. היא יכולה להיות חכמלוגית מאוד מבחינת הרשאות וגם גמישה לשינויים.
תוכנה זו שזה בעצם שירות רשת, נקרא בדרך כלל בשמות webservice, data service.אם אתה מכיר תוכנות לקוח נוספות תוכל לבדוק שחלק צעדו בדרך הזו, והם בטוחות לגמרי, וחלק הלכו בדרך הנלוזה של הסתרת המנגנון מהמשתמש כאבטחה, אם זה שם וסימת מסד, FTP, web service ועוד. כל אלו חשופים לבלגנים נחמדים ממשתמשים משועממים או מעוניינים.
פורסם במקור בפורום CODE613 ב12/07/2015 10:38 (+03:00)
-
@דוד ל.ט.
תוכנה זו שזה בעצם שירות רשת, נקרא בדרך כלל בשמות webservice, data service.
webservice זה שם מושג כללי לכל שרת שמעבד בקשה , לא?
לגבי עצם השאלה, חשבתי שהתשובה הפשוטה היא, לכתוב את פרטי החיבור בצד שרת - PHP לדוגמא, והאפליקציה רק תתחבר לדף הזה עם איזשהו פרמטר שיוכנס בכתובת HTTP, ותקבל בחזרה את הערך המבוקש מתוך הטבלה שעיבד ה PHP.
תקן אותי אם טעיתי.
אני רואה הרבה שמשתמשים עם זה והייתי מאוד רוצה ללמוד את הנושא לעומק, מה לחפש בגוגל?פורסם במקור בפורום CODE613 ב13/07/2015 06:23 (+03:00)
-
webservice זה שם מושג כללי לכל שרת שמעבד בקשה , לא?
אכן. ואמרתי שאתה חייב לבנות אחת כזאת. ייעודית לתיווך בין התוכנות למסד.
לגבי עצם השאלה, חשבתי שהתשובה הפשוטה היא, לכתוב את פרטי החיבור בצד שרת - PHP לדוגמא, והאפליקציה רק תתחבר לדף הזה עם איזשהו פרמטר שיוכנס בכתובת HTTP, ותקבל בחזרה את הערך המבוקש מתוך הטבלה שעיבד ה PHP.
לא קראת טוב את תשובתי.
יש מאות רעיונות ממש נחמדים, שירחיקו את הסכנה (DROP DATABASE וכדומה) בעוד כמה סנטימטרים. למשל לשמור את הסיסמה בצורה מוצפנת.
אבל שללתי את כולם.תקן אותי אם טעיתי.
אני רואה הרבה שמשתמשים עם זה והייתי מאוד רוצה ללמוד את הנושא לעומק, מה לחפש בגוגל?desktop application mysql password
פורסם במקור בפורום CODE613 ב13/07/2015 15:52 (+03:00)
-
@דוד ל.ט.
אבי כתב:
לגבי עצם השאלה, חשבתי שהתשובה הפשוטה היא, לכתוב את פרטי החיבור בצד שרת - PHP לדוגמא, והאפליקציה רק תתחבר לדף הזה עם איזשהו פרמטר שיוכנס בכתובת HTTP, ותקבל בחזרה את הערך המבוקש מתוך הטבלה שעיבד ה PHP.לא קראת טוב את תשובתי.
נו, זה בדיוק תוכנת תיווך, לא?
פורסם במקור בפורום CODE613 ב13/07/2015 16:05 (+03:00)
-
ממש לא... אין שום מתווך התוכנה למסד, התקשורת ישירה. רק בתור שמירת פרטי חיבור בחרת בדף מרוחק וזה שקול לקובץ בדיסק קשיח (עם הסיומות האופייניות XNL/INI).
הדף מחזיר פרטי חיבור, ויאללה התוכנה מחוברת. אתה לא מבין כמה קל למשתמש מנוסה לאחזר את הפרטים הללו, ואיזה שאגות צחוק הוא ירים כשהוא יראה את הדרך המשובשת בה בחרת להחביא ממנו את הפרטים.תוכנה מתווכת הכוונה שהיא מקבלת שם וסיסמה (שיכולים להיות חשופים למשתמש וכתובים בענק בתוכנה) ונותנת גישה למשאבי המסד לפי מה שהחלטת עבור הם והסיסמה האלו. נניח אתה עושה תוכנה לחנות מוזיקה, שאפשר להזמין דיסקים ע"י התוכנה. אז השם והסיסמה יהיו גלויים למשתמש ואדרבה, הוא אפי' יבחר אותם כמו בהרשמה לאתר. התוכנה המתווכת תיתן לשם וססימה אלו את הקניות האחרונות שהם ביצעו וכדומה. אבל הם לא יכולו לבצע SELECT ללא WHERE ולקבל קניות של אחרים.
בעצם תתייחס לרעיון שלך, ותחשוב שבמקום שPHP יחזיר פרטי חיבור כמו טמבל, הוא פשוט יגיד לתוכנה "יאללה, מה את רוצה לדעת"? אז היא תגיד לו "את הסיסמה של המנהל". אז הדף ישאל אותה "רגע, מי את בכלל?"
פורסם במקור בפורום CODE613 ב13/07/2015 16:20 (+03:00)
-
באשכול ישן (שלך), KingYes ענה תמציתית וזה נוגע גם לכאן: http://tchumim.com/topic/509
פורסם במקור בפורום CODE613 ב13/07/2015 16:31 (+03:00)
-
@דוד ל.ט.
בעצם תתייחס לרעיון שלך, ותחשוב שבמקום שPHP יחזיר פרטי חיבור כמו טמבל, הוא פשוט יגיד לתוכנה "יאללה, מה את רוצה לדעת"? אז היא תגיד לו "את הסיסמה של המנהל". אז הדף ישאל אותה "רגע, מי את בכלל?"
לא התכוונתי שהPHP יחזיר את הפרטי חיבור, אלא שהוא יבצע את השאילתה ויחזיר את הערך מתוך הטבלה.
פורסם במקור בפורום CODE613 ב13/07/2015 16:46 (+03:00)