קהילות פורומים, הורדות, יעוץ ותמיכה


אשכולות דומים

  1. [כתבה] Bioshock 2: רוצים למות? אין בעיה
    על ידי .Or. בפורום משחקים כללי
    תגובות: 0
    הודעה אחרונה: 26-05-2009, 16:22
  2. אין בעיה - דחוףףף
    על ידי Nostlgia בפורום דיבורים
    תגובות: 2
    הודעה אחרונה: 28-10-2008, 21:44
  3. תגובות: 2
    הודעה אחרונה: 24-05-2008, 19:27
  4. [מדריך]רוצים משחקי ג'אווה לK1m ול-L7c ? אין בעיה .הנה מדריך.
    על ידי lockhand בפורום סלולרי וטאבלטים כללי
    תגובות: 8
    הודעה אחרונה: 18-05-2008, 22:17
+ תגובה לנושא
מציג תוצאות 1 עד 9 מתוך 9

אבטחת מסד התחברות? אין בעיה!

  1. #1
    Smoxer in your mind
    משתמש כבוד
    האוואטר של -Smoxer-
    תאריך הצטרפות
    11/2011
    הודעות
    8,881
    לייקים
    1181
    נקודות
    483
    פוסטים בבלוג
    3
    משפט מחץ
    Further gets colder until nothing was all that I saw around
    מין: זכר

    ברירת מחדל אבטחת מסד התחברות? אין בעיה!

    יש לי טופס התחברות מהמסד, איך אני מאבטח אותו?
    בשביל לאבטח את המסד אתה צריך לחשוב כמו SQL, ובמילים אחרות יש תווים מיוחדים כמו: גרש ( ' ) הערות ( -- ) וכ'ו
    למשל יש לי תופס התחברות (ראה את הקוד הנ"ל) בשפת PHP:
    קוד PHP:
    $port='localhost:3306';    $user="root";    $password="";    $link mysql_connect($port$user$password);    if (!$link) {           die("לא יכול ליצור קשר עם המסד: " mysql_error());    }                $db_selected mysql_select_db("webSQL"$link);    if (!$db_selected) {        die ("לא יכול להיכנס למסד נתונים: " mysql_error());    }
    $UserName $_REQUEST['User_Name'];        $Password $_REQUEST['Password'];
    $Name mysql_query("SELECT * FROM Errors WHERE Password = '" $Password "';");        $Name_array mysql_fetch_assoc($Name); 
    (אין צורך להמשיך את הקוד, הדברים הבסיסיים נכתבו)
    (ה-port הבסיסי ה-3306, חשוב לציין)

    התחברות רגילה למסד, הלא כן?
    אז זהו שלא!
    משתמש רגיל יכול לגשת לשדה הסיסמה ולכתוב:
    קוד:
    ' OR 'Hack'='Hack
    והוא רואה את המסד, איך, למה איפה אתם שואלים?
    בואו נבחן עוד פעם את הקטעים החשובים ונפרק את הקוד:
    קוד PHP:
    $Name mysql_query("SELECT * FROM Errors WHERE Password = '" $Password "';"); 
    הגדרת משתנה וכניסת אפשרות למסד, נורמטיבי לחלוטין.
    קוד PHP:
    $Name mysql_query(
    פה השורה החשובה:
    קוד PHP:
    SELECT FROM Errors WHERE Password '" . $Password . "'
    פה החור אבטחה, הדבר שגורם לכל הבעיות והחדירות למערכת.
    אם נחשוב טוב נבין שכתבנו סקריפט עם חור אבטחה.

    שהמשתמש מקיש את הקוד שצויין הקוד משתלב עם הסקריפט ונותן הרשאה למרות שהסיסמא לא נכונה.
    איך פותרים את הבעיה?
    שיטה 1:
    בעיקרון זאת שיטה מאוד פשוטה, בודקים אם יש את הגרש ( ' ) ומנטרלים אותו, להלן דוגמה ב-PHP:
    קוד PHP:
    $Password $_REQUEST['Password'];
    $pos strrpos($Password"'");
    if(
    $pos != 0)
    }
    //continue of the code
    {
    else {
    echo 
    "There is an error!" ;

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

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

    שיטה 2 (מומלצת יותר):
    להלן דוגמה ב-PHP:
    קוד PHP:
    <?php$id $_GET['id'];
    $secure mysql_real_escape_string($id);
    $a mysql_query("SELECT `username` from `users` WHERE `id` = '{$secure}'") ;
    $b mysql_fetch_array($a);
    echo 
    $b['username'];
    ?>
    פשוט השיטה mysql_real_escape_string(); מנטרלת את התווים שיכולים לפגוע.
    (קרדיט ל-Crazy_Style)

    עד פה
    בהצלחה בשמירה על המסד!
    נערך לאחרונה על ידי -Smoxer-; 06-07-2012 בשעה 13:18.

  2. קישורים ממומנים

  3. #2
    משתמש מתחיל
    שם פרטי
    matan
    תאריך הצטרפות
    06/2012
    הודעות
    40
    לייקים
    5
    נקודות
    0
    מין: זכר

    ברירת מחדל

    תודה על המדריך

  4. #3
    Smoxer in your mind
    משתמש כבוד
    האוואטר של -Smoxer-
    תאריך הצטרפות
    11/2011
    הודעות
    8,881
    לייקים
    1181
    נקודות
    483
    פוסטים בבלוג
    3
    משפט מחץ
    Further gets colder until nothing was all that I saw around
    מין: זכר

    ברירת מחדל

    ציטוט נכתב במקור על ידי _matan_ צפיה בהודעה
    תודה על המדריך
    תודה, עוד?

  5. #4
    משתמש מתחיל
    שם פרטי
    יובל
    תאריך הצטרפות
    12/2010
    הודעות
    449
    לייקים
    51
    נקודות
    75
    משפט מחץ
    אני רוט בנטורל - לא עושה דיפייס בכלל! 3>
    מין: זכר

    ברירת מחדל

    לא, פשוט לא.
    הערה - פורט ברירת המחדל של MYSQL הינו 3306, מיותר לנמק את זה במשתנה $port.
    אז strrpos.
    ממבט ראשון זה נראה בסדר, אבל יש לא מעט שיטות לעקוף את מה שהצגת.
    1. שימוש בNull-Byte:
    עד לPHP 5.2, מפרש הPHP היה פגיע להתקפת NULL BYTE, שהייתה מאפשרת לתוקף להכניס את התו הנ"ל ולגרום לסגירת מחרוזת אגרסיבית, ובכך להתחמק ממנגנוני זיהוי.
    קוד PHP:
    %00' OR '1'='
    איפה ש%00 לא תוקן, זה יעקוף.

    2. שימוש ב%0A
    הסימן הזה מסמל ירידת שורה חדשה בשפת SQL (נוסח MySQL). הוא לא עושה כלום, וזה כל הקטע פה - לדחוף אותו בהתחלה, ועברתי את האבטחה שלך.
    קוד PHP:
    %0A' OR '1'='
    לא בטוח שזה יעבוד.

    3. המרת HTML?
    גם, לא ניסיתי, אבל יש לי הרגשה ש%27 במקום ' יכול לעבוד לא רע.
    ------------------

    לא צריך להשתמש בפונקציות שזה לא המטרה שלהם. יש שלוש דרכים עיקריות לאבטח אתר מSQLI בצורה יעילה ו100% בטוחה.
    1.
    קוד PHP:
    mysql_real_escape_string() 
    לדוגמא:
    קוד PHP:
    <?php
    $id 
    $_GET['id'];
    $secure mysql_real_escape_string($id);
    $a mysql_query("SELECT `username` from `users` WHERE `id` = '{$secure}'") ;
    $b mysql_fetch_array($a);
    echo 
    $b['username'];
    ?>
    כע, אני עובד הרבה עם משתנים. נוח 3:

    הדרך השניה היא שימוש בקלאסים בPHP. הדרך השלישית היא פשוט לעבור לMySQLI כי היא הרבה יותר טובה.

    סקייפ: niki-k1ng79 | סטים (Steam)
    Rainbow_Dash | Th3PonyWizard
    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

  6. #5
    Smoxer in your mind
    משתמש כבוד
    האוואטר של -Smoxer-
    תאריך הצטרפות
    11/2011
    הודעות
    8,881
    לייקים
    1181
    נקודות
    483
    פוסטים בבלוג
    3
    משפט מחץ
    Further gets colder until nothing was all that I saw around
    מין: זכר

    ברירת מחדל

    ציטוט נכתב במקור על ידי Crazy_Style צפיה בהודעה
    לא, פשוט לא.
    הערה - פורט ברירת המחדל של MYSQL הינו 3306, מיותר לנמק את זה במשתנה $port.
    אז strrpos.
    ממבט ראשון זה נראה בסדר, אבל יש לא מעט שיטות לעקוף את מה שהצגת.
    1. שימוש בNull-Byte:
    עד לPHP 5.2, מפרש הPHP היה פגיע להתקפת NULL BYTE, שהייתה מאפשרת לתוקף להכניס את התו הנ"ל ולגרום לסגירת מחרוזת אגרסיבית, ובכך להתחמק ממנגנוני זיהוי.
    קוד PHP:
    %00' OR '1'='
    איפה ש%00 לא תוקן, זה יעקוף.

    2. שימוש ב%0A
    הסימן הזה מסמל ירידת שורה חדשה בשפת SQL (נוסח MySQL). הוא לא עושה כלום, וזה כל הקטע פה - לדחוף אותו בהתחלה, ועברתי את האבטחה שלך.
    קוד PHP:
    %0A' OR '1'='
    לא בטוח שזה יעבוד.

    3. המרת HTML?
    גם, לא ניסיתי, אבל יש לי הרגשה ש%27 במקום ' יכול לעבוד לא רע.
    ------------------

    לא צריך להשתמש בפונקציות שזה לא המטרה שלהם. יש שלוש דרכים עיקריות לאבטח אתר מSQLI בצורה יעילה ו100% בטוחה.
    1.
    קוד PHP:
    mysql_real_escape_string() 
    לדוגמא:
    קוד PHP:
    <?php
    $id 
    $_GET['id'];
    $secure mysql_real_escape_string($id);
    $a mysql_query("SELECT `username` from `users` WHERE `id` = '{$secure}'") ;
    $b mysql_fetch_array($a);
    echo 
    $b['username'];
    ?>
    כע, אני עובד הרבה עם משתנים. נוח 3:

    הדרך השניה היא שימוש בקלאסים בPHP. הדרך השלישית היא פשוט לעבור לMySQLI כי היא הרבה יותר טובה.
    שמע........ לא חשבתי על זה.
    מוריד בפניך את הכובע!
    אני מוסיף את זה למדריך(אל תדאג אתה תקבל קרדיט)

  7. #6
    מורחקים
    שם פרטי
    קובי
    תאריך הצטרפות
    07/2012
    גיל
    27
    הודעות
    44
    לייקים
    1
    נקודות
    0
    משפט מחץ
    מי שמדפייס - בסוף ייתפס.
    מין: זכר

    Lightbulb HEY

    1. כותבים טופס.
    2. הנ"ל = הנזכר לעיל.
    לעיל=למעלה.(וכתבתה מתחת את הקוד).
    3. עם mysql_real_escape_string הכי מומלץ ובטוח להשתמש.
    4. כמו שאמרו פה, ניתן לעקוף עם Nullbyte או פשוט עם URL ENCODE את פונקציית הstrrpos שלך..(%27)
    5. "פשוט השיטה mysql_real_escape_string(); מנטרלת את התווים שיכולים לפגוע." - תסביר מה היא עושה, המילה escape יכולה להגיד הרבה, אבל אתה צריך להסביר. אני אעשה את זה בשבילך.
    אסקייפינג הינם תווים מיוחדים שנרשמים עם לוכסן הפוך(סלאש) במחרוזות שמכילות double quotes.
    למשל, ירידת שורה זה תו אסקייפינג (\n) גם צלצול פעמון(\a).
    הטבלה :
    Sequence Meaning
    \n linefeed (LF or 0x0A (10) in ASCII)
    \r carriage return (CR or 0x0D (13) in ASCII)
    \t horizontal tab (HT or 0x09 (9) in ASCII)
    \v vertical tab (VT or 0x0B (11) in ASCII) (since PHP 5.2.5)
    \e escape (ESC or 0x1B (27) in ASCII) (since PHP 5.4.0)
    \f form feed (FF or 0x0C (12) in ASCII) (since PHP 5.2.5)
    \\ backslash
    \$ dollar sign
    \"
    double-quote
    \[0-7]{1,3} the sequence of characters matching the regular expression is a character in octal notation
    \x[0-9A-Fa-f]{1,2} the sequence of characters matching the regular expression is a character in hexadecimal notation

    מקור(אם אתה רוצה תשלח לי הודעה פרטית, אין לי עדיין 20 הודעות ואני לא יכול לפרסם לינקים)
    אז האסקייפינג בעצם ימנע פתיחת מחרוזת ללא סגירה. משמע - לא תהיה שגיאת MySQL
    5. אתה לא מלמד את לאבטח את החיבור למסד, אתה מלמד פה איך לבטח את אימות הנתונים בהתחברות משתמש, אז תתקן את הכותרת.

    הייתי מתקן אותך עוד אבל אני חושב שcrazy style עבר על רוב מהשגיאות, חוץ מהשגיאות בעברית, זה באמת חורה לעין, תתקן את זה.

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

    Zixem
    נערך לאחרונה על ידי Zixem; 06-07-2012 בשעה 13:34.

  8. #7
    Smoxer in your mind
    משתמש כבוד
    האוואטר של -Smoxer-
    תאריך הצטרפות
    11/2011
    הודעות
    8,881
    לייקים
    1181
    נקודות
    483
    פוסטים בבלוג
    3
    משפט מחץ
    Further gets colder until nothing was all that I saw around
    מין: זכר

    ברירת מחדל

    ציטוט נכתב במקור על ידי Zixem צפיה בהודעה
    1. כותבים טופס.
    2. הנ"ל = הנזכר לעיל.
    לעיל=למעלה.(וכתבתה מתחת את הקוד).
    3. עם mysql_real_escape_string הכי מומלץ ובטוח להשתמש.
    4. כמו שאמרו פה, ניתן לעקוף עם Nullbyte או פשוט עם URL ENCODE את פונקציית הstrrpos שלך..(%27)
    5. "פשוט השיטה mysql_real_escape_string(); מנטרלת את התווים שיכולים לפגוע." - תסביר מה היא עושה, המילה escape יכולה להגיד הרבה, אבל אתה צריך להסביר. אני יעשה את זה בשבילך.
    אסקייפינג הינם תווים מיוחדים שנרשמים עם לוכסן הפוך(סלאש) במחרוזות שמכילות double quotes.
    למשל, ירידת שורה זה תו אסקייפינג (\n) גם צלצול פעמון(\a).
    הטבלה :
    Sequence Meaning
    \n linefeed (LF or 0x0A (10) in ASCII)
    \r carriage return (CR or 0x0D (13) in ASCII)
    \t horizontal tab (HT or 0x09 (9) in ASCII)
    \v vertical tab (VT or 0x0B (11) in ASCII) (since PHP 5.2.5)
    \e escape (ESC or 0x1B (27) in ASCII) (since PHP 5.4.0)
    \f form feed (FF or 0x0C (12) in ASCII) (since PHP 5.2.5)
    \\ backslash
    \$ dollar sign
    \"
    double-quote
    \[0-7]{1,3} the sequence of characters matching the regular expression is a character in octal notation
    \x[0-9A-Fa-f]{1,2} the sequence of characters matching the regular expression is a character in hexadecimal notation

    מקור(אם אתה רוצה תשלח לי הודעה פרטית, אין לי עדיין 20 הודעות ואני לא יכול לפרסם לינקים)
    אז האסקייפינג בעצם ימנע פתיחת מחרוזת ללא סגירה. משמע - לא תהיה שגיאת MySQL

    הייתי מתקן אותך עוד אבל אני חושב שcrazy style עבר על רוב מהשגיאות, חוץ מהשגיאות בעברית, זה באמת חורה לעין, תתקן את זה.

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

    Zixem
    בעיקרון כבר הוספתי את ה-mysql_real_escape_string(); כמו ש-Crazy_Style אמר.
    בקשר להערות, תודה. אני אנסה להשתפר להבא.

  9. #8
    מורחקים
    שם פרטי
    קובי
    תאריך הצטרפות
    07/2012
    גיל
    27
    הודעות
    44
    לייקים
    1
    נקודות
    0
    משפט מחץ
    מי שמדפייס - בסוף ייתפס.
    מין: זכר

    ברירת מחדל

    ציטוט נכתב במקור על ידי Smoxer314 צפיה בהודעה
    בעיקרון כבר הוספתי את ה-mysql_real_escape_string(); כמו ש-Crazy_Style אמר.
    בקשר להערות, תודה. אני אנסה להשתפר להבא.
    כה אבל התכוונתי שתפרט מה האסקייפינג, שאנשים לא סתם ישתמשו בפונקצייה בלי לדעת מה היא עושה, זה יגרום לסיקידיזם.
    היא לא "מנטרלת" כמו שאמרתה, אתה עיוותתה חלקית את המשמעות.

  10. #9
    משתמש מתחיל
    שם פרטי
    Barney Stinson
    תאריך הצטרפות
    07/2012
    הודעות
    42
    לייקים
    1
    נקודות
    0
    משפט מחץ
    When I Am Sad I Stop Being Sad And Be Awesome Instead.. True Story
    מין: זכר

    ברירת מחדל

    ציטוט נכתב במקור על ידי Zixem צפיה בהודעה
    1. כותבים טופס.
    2. הנ"ל = הנזכר לעיל.
    לעיל=למעלה.(וכתבתה מתחת את הקוד).
    3. עם mysql_real_escape_string הכי מומלץ ובטוח להשתמש.
    4. כמו שאמרו פה, ניתן לעקוף עם Nullbyte או פשוט עם URL ENCODE את פונקציית הstrrpos שלך..(%27)
    5. "פשוט השיטה mysql_real_escape_string(); מנטרלת את התווים שיכולים לפגוע." - תסביר מה היא עושה, המילה escape יכולה להגיד הרבה, אבל אתה צריך להסביר. אני יעשה את זה בשבילך.
    אסקייפינג הינם תווים מיוחדים שנרשמים עם לוכסן הפוך(סלאש) במחרוזות שמכילות double quotes.
    למשל, ירידת שורה זה תו אסקייפינג (\n) גם צלצול פעמון(\a).
    הטבלה :
    Sequence Meaning
    \n linefeed (LF or 0x0A (10) in ASCII)
    \r carriage return (CR or 0x0D (13) in ASCII)
    \t horizontal tab (HT or 0x09 (9) in ASCII)
    \v vertical tab (VT or 0x0B (11) in ASCII) (since PHP 5.2.5)
    \e escape (ESC or 0x1B (27) in ASCII) (since PHP 5.4.0)
    \f form feed (FF or 0x0C (12) in ASCII) (since PHP 5.2.5)
    \\ backslash
    \$ dollar sign
    \"
    double-quote
    \[0-7]{1,3} the sequence of characters matching the regular expression is a character in octal notation
    \x[0-9A-Fa-f]{1,2} the sequence of characters matching the regular expression is a character in hexadecimal notation

    מקור(אם אתה רוצה תשלח לי הודעה פרטית, אין לי עדיין 20 הודעות ואני לא יכול לפרסם לינקים)
    אז האסקייפינג בעצם ימנע פתיחת מחרוזת ללא סגירה. משמע - לא תהיה שגיאת MySQL
    5. אתה לא מלמד את לאבטח את החיבור למסד, אתה מלמד פה איך לבטח את אימות הנתונים בהתחברות משתמש, אז תתקן את הכותרת.

    הייתי מתקן אותך עוד אבל אני חושב שcrazy style עבר על רוב מהשגיאות, חוץ מהשגיאות בעברית, זה באמת חורה לעין, תתקן את זה.

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

    Zixem
    יש לך שגיאה אך אני לא אראה אותה כי ביקשת, תקן תקן (;

    מדריך לא טוב, אין לי מה להגיד יותר, אתה סקיד וזה הכל. ואל תמחק לי את ההודעה הפעם.
    תודה על המדריך מותק.
    נערך לאחרונה על ידי BarneyStinson; 06-07-2012 בשעה 13:43.



+ תגובה לנושא


הרשאות פרסום

  • אין באפשרותך לפרסם נושאים חדשים
  • אין באפשרותך לפרסם תגובות
  • אין באפשרותך לצרף קבצים
  • אין באפשרותך לערוך את הודעותיך


כל הזמנים הם לפי GMT +3. השעה כרגע היא 23:38.
מופעל על ידי vBulletin™ © גרסה 4.1, 2011 vBulletin Solutions, Inc. כל הזכויות שמורות.
פעילות הגולשים
אומנות וגרפיקה
מוזיקה
ספורט
סדרות טלוויזיה
סרטים וקולנוע
קנייה ומכירה
רשתות חברתיות
הבורר 3
פורומי פנאי ובידור
סרטים
סדרות
משחקים
דיבורים
אקטואליה
בעלי חיים
בדיחות והומור
משחקי ספורט
הבורר
מחשבים וטכנולוגיה
תמיכה טכנית
חומרה ומודינג
תוכנות להורדה
סלולארי וגאדג'טים
רקעים למחשב
ציוד הקפי למחשב
אבטחת מידע
תכנות ובניית אתרים
כסף ברשת
אייפון
בריאות ואורח חיים
כושר ופיתוח גוף
דיאטה
צבא וגיוס
יעוץ מיני
מה שבלב
אומנות הפיתוי
יהדות
מיסטיקה ורוחניות
אתאיזם ודתות

נושאים: 2,449,538 | הודעות: 8,150,120 | משתמשים: 315,603 | המשתמש החדש ביותר: upizijoj | עיצוב גרפי: סטודיו עודד בביוף | קידוד: rellect