19-01-2009, 19:24
|
|
|
חבר מתאריך: 04.09.08
הודעות: 50
|
|
ציטוט:
במקור נכתב על ידי dorM
אוקי עשיתי עוד קצת קוראים ו-token מחרוזת שמשתמשים בה כאחת הטכניקות למניעת CSRF.
קודם אראה לך את הקישור מאיפה קראתי וקיבלתי דוגמא (מעולה): http://shiflett.org/articles/cross-...quest-forgeries
אני ממליץ לשים את הבלוג שלו במועדפים. אחלה בלוג, אחלה מאמרים ואחלה הסברים.
ה-token זו מחרוזת hash או כל מחרוזת שרירותית אחרת שאתה שם אותה בטופס (form) פעם אחת בלבד, וכאשר יתבצע submission של הטופס, אתה תבדוק את התקינות של ה-token, מה שאומר לך שאכן המשתמש שלח (אלא אם בוצעה XSS attack בעמוד) את הטופס.
ה-token חייב להיות מתחלף עבור כל טופס שאתה שם אותו, ועבור כל פעם שמבצעים submission לטופס.
להבדיל מ-captcha, ה-token לא מחייב את המשתמשים להדפיס אותיות מתמונה שהם רואים, אלא הוא מיושם כבר בטופס עצמו בצורה "עיוורת" למשתמש (כאשר הוא צופה בקוד מקור) על ידי המתכנת\צד-השרת, וזאת הסיבה שהוא הרבה יותר נוח לשימוש עבור משתמשי הקצה. לכן ה-token הוא דומה ל-captcha מלבד העובדה העיקרית שהוא לא מונע ממשתמשי קצה "רובוטיים" לבצע פעולות.
|
תודה לך על הקישור [הוספתי למועדפים] ועל ההסבר, עזרת לי מאוד. אני חושב שהבנתי איך להשתמש בזה
ציטוט:
במקור נכתב על ידי ישראל K
יש להשים לב לכך שהנקודה העיקרית של בעיה זו, היא שניתן להפנות לקישור ה"בעייתי" אפילו מתוך דף אחר תחת אותו שם מתחם (לדוגמה, פורום, מערכת תגובות או אחר). לכן, סתם לבדוק שהמפנה הוא מאותו אתר, לא ממש יועיל, חשוב לבדוק שהוא הופנה מדף לגטימי - כשכמובן אותו דף חסין מפגיעה זו.
בעיה נוספת בבדיקת המפנה, היא שיתכן ובמקרים מסויימים המפנה לא יוצג (לפי בחירת הגולש, מניעה של תוכנת אבחה או במקרה הפחות מצוי, דפדפן שאינו תומך בשליחת נתון זה).
מס' פתרונות לדעתי:
1. captcha הוא פתרון טוב, אך הוא פחות נח למשתמש. או לחילופין, מדי פרוץ (אם הוא נח מדי למשתמש...).
2. פתרון פשוט נוסף יכול להיות ביצוע הפעולה באמצעות שיטת POST בלבד ולא באמצעות GET.
3. אבל נראה לי שיצירת קוד יחודי לפי אלגוריתם לא ידוע, לכל פעולה משמעותית, תהיה הפתרון הטוב יותר.
|
1. אני אשתמש גם בcaptcha אבל יש מקרים מסויימים [לדוגמא פעולות בעזרת ajax] שבהם השימוש בcaptcha לא יעיל או לא נכון.
2. זה גם תלוי במקרים, בכל מקרה נתונים חשובים מועברים בשיטת POST, אך נתונים פחות חשובים [כמו לדוגמא במערכת vbulletin, עמוד הmember.php?u=XXX] מועברים בכל זאת בGET.
3. מה הכוונה? מן הסתם, הכנסת שורה למסד לדוגמא, היא אותו דבר [פלוס מינוס] אצל כולם.
תודה לך
|