שיחה:גלישת חוצץ
הוספת נושאbuffer overrun
[עריכת קוד מקור]לדעתי ומהידע שלי, כל הקטע על buffer overrun הוא קשקוש מוחלט buffer overrun הוא שם נוסף ל buffer overflow ולראיה קראו את הערך בויקיפדיה האמריקאית. מה אתם אומרים? אפשר למחוק לדעתכם?
תרגום לעברית של buffer
[עריכת קוד מקור]לפי מיטב ידיעתי buffer במשמעות של מחשבים נקרא מכלא ולא חוצץ, אולי צריך לתקן את המושג.
- לפי מיטב ידיעתי buffer במשמעות של מחשבים נקרא בכלל כליקול. אני אמתין 24 שעות להתנגדויות לפני שאני עורך את המושג. 132.68.205.24 01:06, 11 בדצמבר 2011 (IST)
- מתנגד, הערך על buffer בויקי עברית נקרא חוצץ, אם אתה חושב שצריך לשנות את המינוח תעלה זאת בשיחה של חוצץ קודם Ghonniye 22:15, 11 בדצמבר 2011 (IST)
- לפי מיטב ידיעתי buffer במשמעות של מחשבים נקרא בכלל כליקול. אני אמתין 24 שעות להתנגדויות לפני שאני עורך את המושג. 132.68.205.24 01:06, 11 בדצמבר 2011 (IST)
צורך בעריכה
[עריכת קוד מקור]יש לתת את הדעת לפחות לנקודות אלו:
- חוסר בקישורים פנימיים רלוונטיים (על אף העבודה שכבר נעשתה בעניין).
- חוסר בסעיפי "ראו גם" ו"קישורים חיצוניים".
- ניסוחים, והסתמכות גדולה מכפי שמחייבת המציאות על ידע בשפת C.
בריאות, כן. הא? 13:09, 10 פברואר 2006 (UTC)
- אה, וצריך להזכיר את המונח "buffer overflow vulnerability" במלואו בתחילת הערך. הא? 13:11, 10 פברואר 2006 (UTC)
שכתוב
[עריכת קוד מקור]שכתבתי את הערך, כמו כן תיקנתי מספר אי דיוקים שהיו בו. עדיין חסרים בו קישורים רלוונטיים, אני אשתדל להוסיף בהמשך. הורדתי את כל הפיסקה על "תיאור טכני", מכיוון שהיא רלוונטית לגלישת מחסנית בלבד, ומקומה כנראה בערך אחר (שעוד לא נכתב) על גלישת מחסנית. למרות זאת, השארתי את הדוגמא בסוף, מכיוון שהיא קצרה ולדעתי גם מסברת את העין. אשמח אם תביעו דעתכם על הערך, ומה עוד צריך לשכתב בו (אם צריך). השארתי בינתיים את תבנית השכתוב מכיוון שכידוע אין הנחתום מעיד על עיסתו. רציונל 20:54, 7 ביולי 2007 (IDT)
למה? תומר א. - שיחה 13:18, 13 בנובמבר 2009 (IST)
- כי זו אחת מהשיטות הבולטות למניעת שירות. למעשה גלישת חוצץ שאי אפשר לנצל לצרכים אחרים נעלים יותר משמשת למניעת שירות סתם על ידי הקרסת התהליך. ינון - שיחה 21:10, 13 בנובמבר 2009 (IST)
- לא הגיוני שיהיה ערך שמקריאתו לא ניתן להבין למה הוא משוייך לקטגוריה מסויימת. אני מציע שתנסה לכתוב בערך את מה שכתבת כאן. גדי אלכסנדרוביץ' - שיחה 21:50, 13 בנובמבר 2009 (IST)
- ינון, מה שאתה אומר, נכון - אך לא מדויק. זה נכון שהקרסת התהליך גורמת למניעת שירות. אבל כשמדברים על התקפות מניעת שירות מתכוונים (ונדמה לי שככה זה מופיע בערך) על ניצול אקססיבי של משאבים בצורה כזאת שלא יהיו משאבים כדי לשרת את המשתמשים הלגיטימיים. תומר א. - שיחה 23:18, 13 בנובמבר 2009 (IST)
- אז אתה טועה בתפישה שלך, זה כתוב במפורש בערך התקפת מניעת שירות העברי וגם האנגלי וגם גורמים מקצועיים מתייחסים אל זה ככה. אני אוסיף את זה לערך גלישת חוצץ למען הסר ספק. ינון - שיחה 00:11, 14 בנובמבר 2009 (IST)
- ואני לא מבין למה צריך לפרט מעבר למה שכבר כתוב בערך במפורש. ינון - שיחה 00:18, 14 בנובמבר 2009 (IST)
- אז אתה טועה בתפישה שלך, זה כתוב במפורש בערך התקפת מניעת שירות העברי וגם האנגלי וגם גורמים מקצועיים מתייחסים אל זה ככה. אני אוסיף את זה לערך גלישת חוצץ למען הסר ספק. ינון - שיחה 00:11, 14 בנובמבר 2009 (IST)
- ינון, מה שאתה אומר, נכון - אך לא מדויק. זה נכון שהקרסת התהליך גורמת למניעת שירות. אבל כשמדברים על התקפות מניעת שירות מתכוונים (ונדמה לי שככה זה מופיע בערך) על ניצול אקססיבי של משאבים בצורה כזאת שלא יהיו משאבים כדי לשרת את המשתמשים הלגיטימיים. תומר א. - שיחה 23:18, 13 בנובמבר 2009 (IST)
- לא הגיוני שיהיה ערך שמקריאתו לא ניתן להבין למה הוא משוייך לקטגוריה מסויימת. אני מציע שתנסה לכתוב בערך את מה שכתבת כאן. גדי אלכסנדרוביץ' - שיחה 21:50, 13 בנובמבר 2009 (IST)
קטע הקוד
[עריכת קוד מקור]קטע הקוד הקודם באמת יגרום לגלישת חוצץ, אבל לא בגלל גודל המחרוזות אלא כי הן אינן מסתיימות ב- NULL אשר strcpy מחפשת. בנוסף אין לקוד הסבר ואין אינקלוד לספריית המחרוזות הסטנדרטית של C. כתבתי קוד חדש וסיפקתי הסבר. בכיף. - שיחה 11:41, 5 בדצמבר 2011 (IST)
הצעה לדוגמה חלופית
[עריכת קוד מקור]הצעה, מתוך גישה מינימליסטית משהו, אך לדעתי תחליף את הפסקה הקיימת בצורה טובה:
נניח שבזיכרון מוקצה חוצץ של שמונה בתים עבור מחרוזת והאזור העוקב בזיכרון מוקצה למספר שלם. העתקת מחרוזת הדורשת יותר משמונה תוים לזיכרון, החל מתחילת החוצץ, דורסת את המספר המאוחסן לאחר החוצץ. להלן קטע קוד בשפת C, שבמצבים מסוימים עלול ליצור את המתואר לעיל:
char a[8];
int b=0;
strcpy(a,"12345678910");
Uziel302 - שיחה 13:49, 28 בנובמבר 2013 (IST)
- סביר יותר עבור סדר הפוך של הצהרות - המחסנית גדלה כלפי הכתובות התחתונות (בx86) וגלישה ממשתנה במחסנית דורס לרוב משתנים שהוצהרו לפניו. מלבד זאת, הדוגמה הזאת טובה מאוד, ורק צריך לצרף אליה שרטוט של פריסה אפשרית של המשתנים בזיכרון בזמן הקריאה לפונקציה. --אלעזר - שיחה 18:20, 28 בנובמבר 2013 (IST)
- אני ראיתי בפועל גלישה שכזו בסדר הצהרות שכזה, ברור לך שבין המימוש של x86, ובין הקוד יש כמה תחנות שיכולות להשפיע על הסדר בזיכרון...Uziel302 - שיחה 19:42, 28 בנובמבר 2013 (IST)
- מזל שיש ויקיפדיה אנגלית, הסתמכתי על הדוגמה והטבלאות שלהם. יש עוד מקום לשפץ אבל לדעתי המצב עכשיו כבר יותר טוב.Uziel302 - שיחה 20:03, 28 בנובמבר 2013 (IST)
- הרבה דברים יכולים לקרות. אבל אם אתה מחפש דוגמה "קלאסית", אז הסדר הפוך (בלי אופטימיזציות, זה כנראה מה שיהיה; עם אופטימיזציות, טבעי יותר שהמערך ימוקם בסוף, בלי תלות בסדר ההצהרות). המצב עכשיו יותר טוב. אני בעד להחליף את הסדר של המשתנים, "לתקן" את הסדר בטבלה כך שאנגלית תיכתב משמאל לימין, ולהוסיף לפני השרטוט הסבר שזאת "פריסה אפשרית של הזיכרון עבור הקוד המתואר" על חשבון שני המשפטים הראשונים בפתיחה. --אלעזר - שיחה 20:26, 28 בנובמבר 2013 (IST)
- בוצע. הערות נוספות?Uziel302 - שיחה 12:08, 29 בנובמבר 2013 (IST)
- לא. עבודה יפה. --אלעזר - שיחה 14:43, 29 בנובמבר 2013 (IST)
- בוצע. הערות נוספות?Uziel302 - שיחה 12:08, 29 בנובמבר 2013 (IST)
- הרבה דברים יכולים לקרות. אבל אם אתה מחפש דוגמה "קלאסית", אז הסדר הפוך (בלי אופטימיזציות, זה כנראה מה שיהיה; עם אופטימיזציות, טבעי יותר שהמערך ימוקם בסוף, בלי תלות בסדר ההצהרות). המצב עכשיו יותר טוב. אני בעד להחליף את הסדר של המשתנים, "לתקן" את הסדר בטבלה כך שאנגלית תיכתב משמאל לימין, ולהוסיף לפני השרטוט הסבר שזאת "פריסה אפשרית של הזיכרון עבור הקוד המתואר" על חשבון שני המשפטים הראשונים בפתיחה. --אלעזר - שיחה 20:26, 28 בנובמבר 2013 (IST)