הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   אפשרי לקבל נתונים מהURL ולהכניס אותם לHTML בתור טקסט? (https://hosts.co.il/forums/showthread.php?t=108433)

Tyler 13-02-15 02:56

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

המדריך הולך בצורה הבא:
"היי, הגעתם לאתר מדריכים!
המדריך הבא יסביר לכם איך לעבור את שלב X"

בכל שלב המדריך הוא אותו הטקסט, אותו הדף, רק מספר השלב משתנה.
האם אוכל לעשות שלדומא כניסה מהכתובת site.com/guide.php?id=3 ייתן X=3 ויוציא פלט של

"היי הגעתם לאתר מדריכים!
המדריך הבא יסביר לכם איך לעבור את שלב 3"

וכניסה מהכתובת guide.php?id=10 ייתן "....איך לעבור את שלב 10"

וכו'?

אדיר 13-02-15 10:39

http://php.net/manual/en/reserved.variables.get.php

Tyler 13-02-15 15:39

תודה. אפשר לנעול

Haimz 13-02-15 18:36

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

<?php echo $_GET['id']; ?>
ואם כן, זה לא טוב כי אתה חושף את עצמך לXSS
אז תוכל להשתמש ב intval שפשוט מציג לך את המספר:
קוד:

<? echo intval($_GET['id']); ?>

Tyler 13-02-15 18:55

ציטוט:

נכתב במקור על ידי Haimz (פרסם 894341)
אני מניח שבגלל שאתה חדש בנושא הזה, אז הקוד שלך נראה ככה:
קוד:

<?php echo $_GET['id']; ?>
ואם כן, זה לא טוב כי אתה חושף את עצמך לXSS
אז תוכל להשתמש ב intval שפשוט מציג לך את המספר:
קוד:

<? echo intval($_GET['id']); ?>

ואו תודה.
שאלה כללית: האם בכל פעם שאני משתמש בצורה הראשונה שציינת אני חושף את הדף לXSS?
לדוגמא
קוד:

<?php echo $key; ?>
גם חשוף לXSS?
כי אני די משתמש בצורה הזאת בהמון דפים וקודים

Haimz 13-02-15 19:26

ציטוט:

נכתב במקור על ידי Tyler (פרסם 894343)
ואו תודה.
שאלה כללית: האם בכל פעם שאני משתמש בצורה הראשונה שציינת אני חושף את הדף לXSS?
לדוגמא
קוד:

<?php echo $key; ?>
גם חשוף לXSS?
כי אני די משתמש בצורה הזאת בהמון דפים וקודים

ברור,

תחשוב שהכתובת של המשתמש היא כזו:
קוד:

url.com/index.php?id=<script>alert('xss');</script>
ואתה תציג את תוכן ה id , כלומר מה שיוצג לך בעמוד יהיה:
קוד:

<script>alert('xss');</script>
וזה לא טוב, לכן אתה צריך להשתמש ב htmlspecialchars:
http://php.net/htmlspecialchars

אבל כשאתה מציג מספרים, שימוש בintval יספיק.

ד"א כנ"ל גם לגבי _POST ו _COOKIE וכל הקלט מהגולש.

ועוד משהו קטן: אם אתה עובד מול מסד נתונים, htmlspecialchars לא יעזור לך (בעוד ש intval כן), אתה צריך למנוע sql injection שזה פשוט בmysqli ו pdo אם תשתמש ב bind parameters


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

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