הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 26-01-09, 16:44   # 1
dor77
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jan 2008
הודעות: 1,650

dor77 לא מחובר  

עזרה - שימוש בפונצקיה htmlspecialchars

שלום.

מן הסתם המערכות שבניתי עד כה פריצות ללא מעט פירצות אבטחה, כי לא עשיתי כלום בשביל לחסום את זה.
אפילו הזרקתי לעצמי XSS.
בשביל למנוע XSS הפונקציה htmlspecialchars מספיקה [?].

מתי אני משתמש בה? בהוצאה? או בהכנסה?

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

תודה (:
__________________
מתכנת php אמין ומקצועי.
מחירים נוחים!
יצירת קשר: 0544378743
  Reply With Quote
ישן 26-01-09, 17:32   # 2
daMn
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: Mar 2007
גיל: 34
הודעות: 2,050

daMn לא מחובר  

בעיקרון, מצד האתר בפן האבטחה, אתה צריך לוודא איזה נתונים אתה מקבל מכל מקום שמשתמש יכול להכניס בו קלט, שים לב שקלט ייכנס לך באחד או יותר מהשיטות הבאות POST/GET/COOKIE/SESSION, אתה פשוט צריך לוודא שאם למשל בGET אתה מצפה לקבל ערך שהוא מספר נניח במשתנה בשם id אז אתה משתמש בפונקציות שמוודאות שזה אכן מספר.
אתה צריך לעבור ולסנן על כל קלט אפשרי שיש לך באתר, בשביל נתונים שאתה מכניס למסד נתונים משתמשים בaddslashess ואם המסד שלך הוא MySql ותומך בפונקציה mysql_real_escape_string אז היא מקבלת עדיפות.
__________________
"חינוך למדעי המחשב לא יכול להפוך אף אחד למתכנת מומחה יותר מאשר לימוד על מברשות וצבעים יכול להפוך מישהו לצייר מיומן."
(אריק ס. ריימונד)
  Reply With Quote
ישן 26-01-09, 18:15   # 3
dor77
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jan 2008
הודעות: 1,650

dor77 לא מחובר  

mysql_real_escape_string זה לא נגיד sql injection?
אני רוצה לחסום בפני sql injection ו xss, בשביל xss מטפסים, אני אמור להשתמש בhtmlspecialchars לא?

אני מקבל נתונים מPOST.

כאילו אני מקבל משתנה מטוספ, ואז מגדיר אותו:

$var=$_POST['var'];

ואז מכניס את $var למסד.

אני אמור להשתמש בפונקציה בדף הזה, שאני מכניס את var למסד?

או בדף שאני מציג את var?
__________________
מתכנת php אמין ומקצועי.
מחירים נוחים!
יצירת קשר: 0544378743
  Reply With Quote
ישן 26-01-09, 19:16   # 4
DvirCohen
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Dec 2007
הודעות: 151

DvirCohen לא מחובר  

תקשיב, אל תחשוב איך לחסום באופן ספציפי XSS או SQL INJ.
תהיה ראש גדול.
כמו שדאמן אמר לך, תסנן את הקלט שאתה מקבל ככה שהוא יהיה רק מה שאתה רוצה שיהיה בו.

אני אתן לך דוגמא,
קודם כל כמובן תשתמש בhtmlspecialchars ותחסום עוד ביטויים מסוכנים באופן ידני (כמו ביטויי JS למיניהם, כל מיני document.cookie ודברים כאלה).

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

ככה לכל סוגי הקלטים שלך..
  Reply With Quote
ישן 26-01-09, 20:59   # 5
dor77
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jan 2008
הודעות: 1,650

dor77 לא מחובר  

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

ובקשר ל intval, מה זה קשור ל id?
את ה id אני מציג, אני כותב למשל:
"לחץ כאן על מנת להגיע לפרוקיל שלך"
שזה בעצם קישור הוא ככה:
www.example.com/userid=
ואני מוסיף את המשתנה id שהוצא מהמסד.
אין פה קלט, הוא מופיע רק בכתובת.

בכל אופן, אשמח לדוגמא ב htmlspecialchars.
__________________
מתכנת php אמין ומקצועי.
מחירים נוחים!
יצירת קשר: 0544378743
  Reply With Quote
ישן 26-01-09, 21:03   # 6
Ron | CSite.co.il
חבר על
 
מיני פרופיל
תאריך הצטרפות: Jun 2007
גיל: 33
הודעות: 980

Ron | CSite.co.il לא מחובר  

בטח שיש קלט,
אתה קולט את המשתנה מהכתובת,
תנסה דבר כזה:

תכין דף שקולט id מהכתובת, משהו כזה: example.co.il/index.php?id=5
ואז תשים במקום ה 5 גרש, כלומר:
example.co.il/index.php?id='

במידה ולא תשתמש פה בפונקציית אבטחה תוצג לך שגיאת sql, כך בעצם ניתן להזריק לך sql ולהתעסק עם המסד שלך.
  Reply With Quote
ישן 27-01-09, 21:04   # 7
dor77
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jan 2008
הודעות: 1,650

dor77 לא מחובר  

כן, sql injection.
רגע, בוא נתעסק שנייה ב XSS.
מה אני עושה עם המשתנה?
קלטתי אותו מטופס (POST), יש י את השורה הזאת:

PHP קוד:
$var=$_POST['name']; 
את זה אני אמור "לעטוף"?

תודה רבה.
__________________
מתכנת php אמין ומקצועי.
מחירים נוחים!
יצירת קשר: 0544378743
  Reply With Quote
ישן 27-01-09, 21:10   # 8
Ron | CSite.co.il
חבר על
 
מיני פרופיל
תאריך הצטרפות: Jun 2007
גיל: 33
הודעות: 980

Ron | CSite.co.il לא מחובר  

כן, ככה:

PHP קוד:
$var htmlspecialchars($_POST['name']) ; 
  Reply With Quote
ישן 27-01-09, 22:46   # 9
DvirCohen
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Dec 2007
הודעות: 151

DvirCohen לא מחובר  

רון הראה לך את אופן השימוש.
אבל שוב, הפונקציה הזאת לא מספיקה.
הפונקציה הזאת לא חוסמת את התו ' אלא רק את התווים <>"&.
מה שאומר שנניח ואתה עושה טופס התחברות עם שאילתה כזאת:
PHP קוד:
$user htmlspecialchars($_POST['user']);
$pass htmlspecialchars($_POST['pass']);

$q mysql_query("SELECT * FROM `members` WHERE `user` = '".$user."' AND `pass` = '".$pass."'"); 
אני עדיין יוכל להזריק לך דבר כזה:
קוד:
' OR 'a'='a
והשאילתה תהיה:
קוד:
SELECT * FROM `members` WHERE `user` = 'something' AND `pass` = '' OR 'a'='a'
  Reply With Quote
ישן 29-01-09, 15:51   # 10
dor77
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jan 2008
הודעות: 1,650

dor77 לא מחובר  

ציטוט:
נכתב במקור על ידי DvirCohen צפה בהודעה
רון הראה לך את אופן השימוש.
אבל שוב, הפונקציה הזאת לא מספיקה.
הפונקציה הזאת לא חוסמת את התו ' אלא רק את התווים <>"&.
מה שאומר שנניח ואתה עושה טופס התחברות עם שאילתה כזאת:
PHP קוד:
$user htmlspecialchars($_POST['user']);
$pass htmlspecialchars($_POST['pass']);

$q mysql_query("SELECT * FROM `members` WHERE `user` = '".$user."' AND `pass` = '".$pass."'"); 
אני עדיין יוכל להזריק לך דבר כזה:
קוד:
' OR 'a'='a
והשאילתה תהיה:
קוד:
SELECT * FROM `members` WHERE `user` = 'something' AND `pass` = '' OR 'a'='a'
כן, sql injection, אז שאלה, למה לא ישר לשים mysql_real_escape_string?
אפשר לוותר על htmlspecialchars? או שזה משהו שונה?
בכללי, אפשר לשים יותר מהגנה אחת? כלומר גם htmlspecialchars וגם mysql_real_escape_string?

תודה רבה!!
__________________
מתכנת php אמין ומקצועי.
מחירים נוחים!
יצירת קשר: 0544378743
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 08:42.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ