אבטחת מידע ב PHP + MYSQL

אבטחת מידע ב PHP + MYSQL

היי. אני מתכנת אתר, שמבוסס על PHP ו MYSQL רציתי לדעת איך אני יכול לעשות את האתר בצורה הכי מאובטחת שיהיה קשה לפרוץ למסד הנתונים או לקוד של האתר.... אני יודע שזה שאלה רחבה מאוד, אבל בעיקרוני.. במה להשתמש? באיזה פקודות לא, איפה אפשר ללמוד קצת מהדבר הזה?
 

עידו פ

New member
מספר דברים שיש להתייחס אליהם

1. sql injection - אם אתה מריץ שליפות שאליהן אתה משרשר ערכים שהמשתמש מזין, המשתמש יכול במזיד להזין ביטויים שיתפרשו כשליפה ובכך לשחק לך עם תוצאות השליפה (שזה יכול להיות בזמן אחזור, עדכון ואף מחיקה) - מציע שתקרא על הנושא באינטרנט (או שתשאל בפורום הרלוונטי לשפת התכנות / DB לגבי כלים) 2. פריצה למסד הנתונים - בהתאם לצורה בה אתה עובד מול ה-DB : יוזרים ל-DB לפי היוזר שנכנס לאתר - ניהול היוזרים במנגנון ייעודי לכך (כגון Active Directory) והמנעות מבניית כלים מיוחדים לכך. יוזר אחר ל-DB - תאבטח את הסיסמה שלך (קובץ מוצפן, שאין גישה אליו - היה על זה דיון באתר כמדומני) 3. פריצה לקוד של האתר - פירוול כמובן (לא כל דבר נופל על התוכניתן), לא מכיר PHP אבל אני מציע שתבדוק באתר אם יש דרך "לחתום" את הקבצים (חתימה אלקטרונית שלא תאפשר שינוי של הקובץ). כמובן שגם מומלץ לשאול את השאלה בפורום PHP ובפורום בסיסי נתונים.
 

ddalus

New member
הקשחת MySQL מינימלית

MySQL מבדיל בין משתמשים מקומיים (חיבור ל-DB מתוך אותו המחשב) לבין משתמשים בעלי כתובת - כך שאחד הדברים הראשונים שחובה לעשות הוא לוודא שאין לאף משתמש גישה חיצונית ל-DB, כך שיתאפשר לפרוץ אליו ישירות ולעקוף את ה-PHP. מובן מאליו שצריך לבטל כל אפשרות לגישה אנונימית. שנית, למטרת הרצת תקשורת בין ה-PHP ל-DB יש ליצור חשבון ספציפי בעל הרשאות מינימליות ככל האפשר, ולהבדיל בינו לבין חשבונות המשמשים לאדמיניסטרציה. פרטים מדוייקים על איך לעשות את הדברים הללו, ואיך לנהל שרת MySQL באופן כללי, ניתן למצוא בתיעוד שנמצא באתר של המוצר: לינק לינק לינק. --- למרות זאת, באופן כללי ובלי להכיר PHP, כלל האצבע שאני מאמץ לי בדר"כ הוא שכל מידע בעל נגישות פיסית (כלומר על מחשב שאינו נעול בתוך כספת, או בעל חיבור לרשת כלשהי, גם אם היא "מאובטחת") ניתן לגניבה בדרך כזו או אחרת שלא נצפתה מראש - הכל תלוי ברמת הנחישות של הפורץ.
 
למעלה