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

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

sUP 28-05-06 16:26

בעית "טופס פרוץ"
 
בואו ניקח טופס לדוגמא, של תגובה נגיד. (ובואו נגיד שיש שם עורך טקסט)

עכשיו בנאדם שמשעמם לו בחיים ורוצה להזיק,
לקח את אותו טופס, שם אותו בדף אחר (עם TEXTAREA ללא העורך טקסט)
והחליט להשתיל קודים זדוניים.. :-)

איך ניתן למנוע שאם הטופס לא בא מהכתובת של האתר אז הוא "יפסל" ותוצג שגיאה?

skaz 28-05-06 16:30

בדיקה פשוטה...

מגדיר למשל משתנה flag=1, לאחר שליחת הטופס בדף הבא אתה מעביר את המשתנה - לפני הכנסת הנתונים למסד - אתה בודק אם flag=1, אם כן מכניס את הנתונים למסד.

sUP 28-05-06 16:37

ממ לא ממש הבנתי:|

skaz 28-05-06 16:44

יש לך דף עם טופס
יש לך דף שמעביר את הנתונים מהטופס למסד.

בדף עם הטופס אתה מגדיר משתנה - flag=1 למשל.
לאחר השליחה של הנתונים, אתה עובר לדף שמעביר את הנתונים למסד, יחד איתך עובר גם המשתנה שהגדרת בדף הראשון (יכול לעבור דרך מסד, דרך GET).

בדף השני אתה בודק אם flag=1 אתה ממשיך רגיל, אם לא אתה מציג שגיאה, אם העברת את flag דרך מסד אז בסוף הקובץ אתה כמובן מאפס אותו שוב.

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

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

sUP 28-05-06 17:08

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

eLad 28-05-06 17:09

ציטוט:

נכתב במקור על ידי skaz
בדף עם הטופס אתה מגדיר משתנה - flag=1 למשל.
לאחר השליחה של הנתונים, אתה עובר לדף שמעביר את הנתונים למסד, יחד איתך עובר גם המשתנה שהגדרת בדף הראשון (יכול לעבור דרך מסד, דרך GET).

אני מוריד את הטופס למחשב ושולח אותו ככה:
www.domain.co.il/page.aspx?flag=1

פרצתי לך את "ההגנה"

ציטוט:

נכתב במקור על ידי skaz
בנוסף לדרך הזו יש את הדרך עם ה session.
שתי הדרכים טובות אך אם משקיעים קצת יותר מחשבה גם הן ניתנות לפריצה.

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

פרצתי לך את "ההגנה"

ציטוט:

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

אני יכול להקיש את המספר הרנדומאלי, זה לא מה שיעצור אותי וחוץ מזה, היום יש שיטות די קלות לזייף מספר רנדומאלי, רוצה לשמוע?

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


לשואל השאלה,
תוודא את הנתונים בצד שרת עוד ותחליף תווים בעייתים

sUP 28-05-06 17:25

תוודא את הנתונים בצד שרת עוד
איך?

ותחליף תווים בעייתים
יש המון כאלה =\

eLad 28-05-06 17:30

ציטוט:

נכתב במקור על ידי sUP
תוודא את הנתונים בצד שרת עוד
איך?

איפה שאתה אמור לקבל מספר תבדוק שזה באמת מספר מה שמגיע
איפה שאתה צריך לקבל מייל תבדוק שזה באמת מייל וכו'

ציטוט:

נכתב במקור על ידי sUP
[B
ותחליף תווים בעייתים
יש המון כאלה =\

לא, יש די מעט כאלו
"
'
<
>
&
;
#

ובכל מקרה תחליף אותם במקבילים שלהם ב ASCII בכל שדה ושדה

sUP 28-05-06 17:34

ממ אבל אלעד, שים לב שאמרתי שיש עורך טקסט,
ויש שימוש ב <b> וטאגים בסגנון הזה..

eLad 28-05-06 17:38

ציטוט:

נכתב במקור על ידי sUP
ממ אבל אלעד, שים לב שאמרתי שיש עורך טקסט,
ויש שימוש ב <b> וטאגים בסגנון הזה..

אז אם אתה מוצא <b> אל תחליף אותו ..

קצת לחשוב מעבר לקופסא |קורץ|


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

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