|
הרשם | ![]() |
שאלות ותשובות | ![]() |
רשימת חברים | ![]() |
לוח שנה | ![]() |
הודעות מהיום | ![]() |
חיפוש | ![]() |
|
![]() |
![]() |
|
כלים לאשכול | תצורת הצגה |
![]() |
# 1 |
חבר וותיק
|
עזרה - שימוש בפונצקיה htmlspecialchars
שלום.
מן הסתם המערכות שבניתי עד כה פריצות ללא מעט פירצות אבטחה, כי לא עשיתי כלום בשביל לחסום את זה. אפילו הזרקתי לעצמי XSS. בשביל למנוע XSS הפונקציה htmlspecialchars מספיקה [?]. מתי אני משתמש בה? בהוצאה? או בהכנסה? כאילו יש לי טופס, שאני מכניס למסד נתונים (טופס שגולשים משתמשים בו). אז אני צריך להשתמש בה לפני ההכנסה, או בהוצאה? כאילו הפונקציה מונעת כניסתם של תווים לא רצויים למסד, או הדפסתם מהסד, בשליפה, כי יש הבדל מאוד גדול. תודה (:
__________________
מתכנת php אמין ומקצועי. מחירים נוחים! יצירת קשר: 0544378743 |
![]() |
![]() |
# 2 |
הוסטסניון
|
בעיקרון, מצד האתר בפן האבטחה, אתה צריך לוודא איזה נתונים אתה מקבל מכל מקום שמשתמש יכול להכניס בו קלט, שים לב שקלט ייכנס לך באחד או יותר מהשיטות הבאות POST/GET/COOKIE/SESSION, אתה פשוט צריך לוודא שאם למשל בGET אתה מצפה לקבל ערך שהוא מספר נניח במשתנה בשם id אז אתה משתמש בפונקציות שמוודאות שזה אכן מספר.
אתה צריך לעבור ולסנן על כל קלט אפשרי שיש לך באתר, בשביל נתונים שאתה מכניס למסד נתונים משתמשים בaddslashess ואם המסד שלך הוא MySql ותומך בפונקציה mysql_real_escape_string אז היא מקבלת עדיפות.
__________________
"חינוך למדעי המחשב לא יכול להפוך אף אחד למתכנת מומחה יותר מאשר לימוד על מברשות וצבעים יכול להפוך מישהו לצייר מיומן." |
![]() |
![]() |
# 3 |
חבר וותיק
|
mysql_real_escape_string זה לא נגיד sql injection?
אני רוצה לחסום בפני sql injection ו xss, בשביל xss מטפסים, אני אמור להשתמש בhtmlspecialchars לא? אני מקבל נתונים מPOST. כאילו אני מקבל משתנה מטוספ, ואז מגדיר אותו: $var=$_POST['var']; ואז מכניס את $var למסד. אני אמור להשתמש בפונקציה בדף הזה, שאני מכניס את var למסד? או בדף שאני מציג את var?
__________________
מתכנת php אמין ומקצועי. מחירים נוחים! יצירת קשר: 0544378743 |
![]() |
![]() |
# 4 |
חבר בקהילה
|
תקשיב, אל תחשוב איך לחסום באופן ספציפי XSS או SQL INJ.
תהיה ראש גדול. כמו שדאמן אמר לך, תסנן את הקלט שאתה מקבל ככה שהוא יהיה רק מה שאתה רוצה שיהיה בו. אני אתן לך דוגמא, קודם כל כמובן תשתמש בhtmlspecialchars ותחסום עוד ביטויים מסוכנים באופן ידני (כמו ביטויי JS למיניהם, כל מיני document.cookie ודברים כאלה). דבר שני, אם אתה רוצה לקבל ID כלשהו נניח והוא חייב להיות מספרי, פשוט תדאג שהוא יהיה אך ורק מספרי..תשתמש בintval למשל. או שאם אתה רוצה שערך מסויים יכיל רק מספרים ואותיות, תשלב ביטוי רגולרי לנקות כל תו אחר. ככה לכל סוגי הקלטים שלך.. |
![]() |
![]() |
# 5 |
חבר וותיק
|
אוקיי, הבנתי את זה, תודה.
מישהו יכול חהסביר לי איך אני משתמש בקלט עם הפונקציה htmlspecialchars למשל? ובקשר ל intval, מה זה קשור ל id? את ה id אני מציג, אני כותב למשל: "לחץ כאן על מנת להגיע לפרוקיל שלך" שזה בעצם קישור הוא ככה: www.example.com/userid= ואני מוסיף את המשתנה id שהוצא מהמסד. אין פה קלט, הוא מופיע רק בכתובת. בכל אופן, אשמח לדוגמא ב htmlspecialchars.
__________________
מתכנת php אמין ומקצועי. מחירים נוחים! יצירת קשר: 0544378743 |
![]() |
![]() |
# 6 |
חבר על
|
בטח שיש קלט,
אתה קולט את המשתנה מהכתובת, תנסה דבר כזה: תכין דף שקולט id מהכתובת, משהו כזה: example.co.il/index.php?id=5 ואז תשים במקום ה 5 גרש, כלומר: example.co.il/index.php?id=' במידה ולא תשתמש פה בפונקציית אבטחה תוצג לך שגיאת sql, כך בעצם ניתן להזריק לך sql ולהתעסק עם המסד שלך.
__________________
קארדניה - משחק דפדפן ישראלי חדשני |
![]() |
![]() |
# 7 |
חבר וותיק
|
כן, sql injection.
רגע, בוא נתעסק שנייה ב XSS. מה אני עושה עם המשתנה? קלטתי אותו מטופס (POST), יש י את השורה הזאת: PHP קוד:
תודה רבה.
__________________
מתכנת php אמין ומקצועי. מחירים נוחים! יצירת קשר: 0544378743 |
![]() |
![]() |
# 8 |
חבר על
|
כן, ככה:
PHP קוד:
__________________
קארדניה - משחק דפדפן ישראלי חדשני |
![]() |
![]() |
# 9 |
חבר בקהילה
|
רון הראה לך את אופן השימוש.
אבל שוב, הפונקציה הזאת לא מספיקה. הפונקציה הזאת לא חוסמת את התו ' אלא רק את התווים <>"&. מה שאומר שנניח ואתה עושה טופס התחברות עם שאילתה כזאת: PHP קוד:
קוד:
' OR 'a'='a קוד:
SELECT * FROM `members` WHERE `user` = 'something' AND `pass` = '' OR 'a'='a' |
![]() |
![]() |
# 10 | |
חבר וותיק
|
ציטוט:
אפשר לוותר על htmlspecialchars? או שזה משהו שונה? בכללי, אפשר לשים יותר מהגנה אחת? כלומר גם htmlspecialchars וגם mysql_real_escape_string? תודה רבה!!
__________________
מתכנת php אמין ומקצועי. מחירים נוחים! יצירת קשר: 0544378743 |
|
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|