איך לשמור על אבטחת מידע בכתיבת אתר PHP

איך לשמור על אבטחת מידע בכתיבת אתר PHP

זה כואב לראות אתר שלך או של לקוח מוחרב ע"י האקרים מדריך זה יתאר איך לשמור על רמת אבטחה נאותה בכתיבה של אתרים ב- PHP

Hard 1,231 views

What You'll Need

  • PHP
  • בניית אתרים
  • אבטחת מידע
  • טרור באינטרנט

Tips

אבטחה תמיד תבוא על חשבון נוחות - בטווח הקצר. לימים זה תמיד משתלם, במיוחד בעולם האינטרנט.

Steps

  1. 1

    Step 1

    Step 1
    מודעות בזמן הכתיבה - נסה לחשוב על איך מישהו יוכל לנצל את מה שכתבת לרעה
  2. 2

    Step 2

    חנך עצמך - האינטרנט מלא באתרים מעולים עם מדריכי אבטחה (למשל "בקלות")
  3. 3

    Step 3

    הכי חשוב - סנן קלט חיצוני !!! בכל מקום שאתה יכול בדוק מה מוזן - פרמטרים ב- URL, שדות בטפסים, קבצים שמועלים וכו'
  4. 4

    Step 4

    חשוב לפתח ללא register_globals. שימוש במשתנה הזה יאפשר גישה קלה לכל משתנה ביישום ע"י כל גורם
  5. 5

    Step 5

    דאג לגרסאות מאובטחות ומעודכנות של כל קוד שמגיע מצד ג' - במיוחד עורכי תוכן כמו SPAW
  6. 6

    Step 6

    סינון של הקלט באמצעות קובץ שב- INCLUDE של כל דף או קובץ ראשון באתר שקורא לשאר הקבצים ובקובץ זה מבוצעים סינונים כללים לכל האתר כמו זיהוי, קיצור URL. אפשר גם להשתמש ב- auto_prepend_file כדי לוודא שימוש בכל הקבצים
  7. 7

    Step 7

    יש להניח כהנחת בסיס שהמשתנים - POST_$ ו- GET_$ הם "נגועים" (כוון שהגישה אליהם חיצונית) ועלולים להכיל מידע שגוי. מומלץ להעביר את המשתנים האלה סינון לפני השימוש בהם בשאר הדפים.
  8. 8

    Step 8

    שימוש בדווח שגיאות - error_reporting במצב E_ALL. ניתן לקבע באמצעות ()ini_set או עריכת ה- php.ini אם יש גישה (אפשר גם לשים php.ini יחודיי בכל תיקיה)
  9. 9

    Step 9

    סינון שדות קלט בטופס צריך תמיד להעשות בצד השרת ! אפשר גם בצד הלקוח לטובת נוחות השימוש, אך אין לוותר על הסינון בצד השרת.
  10. 10

    Step 10

    בסינון קלט, השתמש בפונקציות הבנויות: ()htmlentities strip_tags utf8_decode כדי למנוע XSS (מצב שבו האתר משמש מתווך לתקיפת הגולשים אליו ע"י שתילת קוד - לדוגמא js פולשני שמוצג בפוסט של פורום)
  11. 11

    Step 11

    תמיד לשים את הקובץ שמכיל את ההרשאת לבסיס הנתונים במקום שאין אליו גישה מדפדפן, וניתן להגן עליו גם באמצעות ה- httpd.conf , לדוגמא סיומות inc: Order allow,deny Deny from all
  12. 12

    Step 12

    כדי להגן מפני sql injections מומלץ לעבוד עם stored procedures אם זה נתמך ע"י בסיס הנתונים שלכם (mysql 5 למשל). כמו כן, סינון קפדני של השדות ימנע אפשרות של הזנת פקודות SQL ושרשורם לפקודות בקוד.
  13. 13

    Step 13

    השתמש ב- if (!isset($_SESSION['initiated'])) { session_regenerate_id(); $_SESSION['initiated'] = true; } כדי למנוע התקפה של קיבוע session
  14. 14

    Step 14

    השתמש ב- if (isset($_SESSION['HTTP_USER_AGENT'])) { if ($_SESSION['HTTP_USER_AGENT'] != md5($_SERVER['HTTP_USER_AGENT'])) { /* Prompt for password */ exit; } } else { $_SESSION['HTTP_USER_AGENT'] = md5($_SERVER['HTTP_USER_AGENT']); } כדי להקשות על התקפת השתלטות על session
  15. 15

    Step 15

    בשרת שיתופי, כדאי להשתמש ב- session_set_save_handler() כדי לשמור את המידע session ב- DB ולא בתיקיית TMP שנגישה לכל מי שחולק איתך את השרת. הדבר נכון גם לגבי קבצים רגישים, תמיד עדיף לשמור אותם בבסיס הנתונים !
  16. 16

    Step 16

    אם יש לך אפשרות (שרת ייעודי, או ספק אחסון שמשתף פעולה) השתמש ב- mod_security, מערכת זו תאפשר לך סינון של מספר רב של התקפות מוכרות, כבר ברמת השרת.
  17. 17

    Step 17

    סיסמאות צריכות להיות ארוכות ומסובכות, עם מספרים וסימנים מיוחדים.

Related Guides

How to choose and buy your website domain name

How to choose and buy your website domain name

The name of the site says everything, it must be catchy, short, concise and yet tell what is behind the business. These few easy steps will explain how to choose and buy a domain name for your website.

Easy 1K views
How to choose a logo

How to choose a logo

How your logo appears and the impression it makes will influence how easy it is to to remember your company name.

Medium 7K views

איך ליצור קובץ CSV תקין בעברית בעזרת PHP

נתקלתי בזמן האחרון במקרה שהייתי צריך ליצור קובץ CSV עבור הורדת נתונים באתר אינטרנט. כעקרון יש מספר אפשרויות, אני בחרתי לקחת אחת מסיבות מסוימות (אין טעם לפרט), אך נתקלתי במספר בעיות, לכן החלטתי לשתף איך ליצור קובץ CSV בעברית תקין ללא בעיות קידוד.

Medium 1K views
מורה נבוכים למחשוב ענן

מורה נבוכים למחשוב ענן

מדריך זה ינסה לשפוך מעט אור על הנושא "מחשוב עננים" אמאזון, גוגל, מיקרוסופט, go-grid, salesforce.com ועוד.... התבלבלתם ? אנסה להסביר את ההבדלים בין השרותים המוצעים, איך לבחור את השרות הנכון, ואיך לבחור את הספק הנכון.

Hard 3K views
מדריך HTML מספר 1 - הכרות

מדריך HTML מספר 1 - הכרות

פירוש הקיצור HTML הוא Hyper Text Markup Languge - שפה זו היא שפת תגיות (בניגוד לשפת תכנות) שיוצרות ומעצבות דפי אינטרנט. קוד HTML ישמרו על דפי טקסט פשוטים. דפים אלו יכילו את התגיות המדוברות, מלל וסימונים שיתנו הוראות כיצד על הדפדפן להראות את דף האינטרנט. במדריך זה אראה לכם כיצד לכתוב תגיות html פשוטות וכיצד לראות אותן בתצורת דף אינטרנט.

Easy 1K views
How to Fix the OpenSSL Heartbleed Bug: A Comprehensive Guide

How to Fix the OpenSSL Heartbleed Bug: A Comprehensive Guide

Learn to identify, patch, and verify fixes for the critical OpenSSL Heartbleed vulnerability. This guide covers steps for Linux, Apache, Tomcat, and other systems.

Medium 14K views