תוכן העניינים
22 בנובמבר 2009 / מאת גיל רבי

עיצוב באנרים - מדריך ופתרון Cross Domain


מעצבי אינטרנט, פלאשיסטים, מעצבי באנרים ועמודי נחיתה בפרט מכירים את בעיית ה-cross domain הנפוצה בפלאש, למי שנתקל בבעיה זו בפעם הראשונה אסביר ואפרט במאמר זה. אם אתה עובד הרבה עם פלאש, תגיע לגלות בשלב מסוים כי ברוב גירסאות הפלאש הקיימות ישנה הגבלה על מדיניות הפלאש לתקשר עם קובץ פלאש אחר הנמצא בכתובת דומיין שונה, כלומר אם ניקח סיטואציה בה יש לך צורך ליצור באנר פלאש המכיל loader הטוען את הבאנר משרת / דומיין חיצוני בשל משקל הבאנר או מכל סיבה אחרת תופתע לגלות שלא תוכל לשלוט על הבאנר ועל קובץ הפלאש הנטען מהדומיין הנוסף מהבאנר הטוען את קובץ הפלאש הנוסף. בדרך כלל במצב כזה על השרת עצמו זה פשוט לא יעבוד ואם תנסה להריץ את ה"לואדר" מתוך תוכנת הפלאש תקבל הודעת שגיאה המציינת שלא ניתן לחצות את תחום האבטחה של הפלאש. ברמה העיקרונית הודעה זו אומרת שאתה מנסה לגשת לקובץ מתחום אחר אשר אבטחת הפלאש אינה מאפשרת זאת. אז איך בכל זאת ניתן להתגבר על בעיית ה- cross domain? ישירות דרך הפלאש: יש להכניס את הקוד הבא בKEYFRAME הראשון בבאנר אותו אנו נטען בעזרת הLOADER:
System.security.allowDomain("www.mysite.com");
System.security.allowDomain("http://www.mysite.com");
System.security.allowDomain("mysite.com");
תוכן קוד זה מאפשר גישה מ-תחום אשר אותו אנו נגדיר בקוד במיקום של "www.mysite.com" אנו נכניס את כתובת הדומיין ממנו נטען את הבאנר כלומר את כתובת הדומיין של הLOADER, כלומר אם ניקח סיטואציה והבאנר יושב בכתובת http://www.sample.co.il/ban.swf והLOADER הטוען את הבאנר יושב ב FACEBOOK.com אנו נצטרך להגדיר במיקום של MYSITE את כתובת הדומין של פייסבוק ובכך לאפשר לפייסבוק לטעון את הבאנר ולשלוט עליו ועל כל הסרטונים והאלמנטים המצויין בו. בעזרת קובץ XML חיצוני: יש ליצור קובץ XML, לדוגמא ניתן לו את השם cross.xml, קובץ זה חייב להיות ממוקם בתיקיית / ספריית השורש של הבאנר הנטען, כלומר לא בתייקיה של הבאנר הטוען משמע ה- loader אלא בתיקיה של הבאנר אותו אנו טוענים מה"לואדר". כמו כן יש לקשר את קובץ הXML לבאנר אותו אנו רוצים לטעון. כעת לאחר שיצרנו את קובץ XML וקישרנו את הבאנר אליו, נפתח ונערוך אותו בפנקס רשומות או לחילופין בכל עורך קוד ונכניס את הקוד הבא:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="www.mysite.com" to-ports="25" />
<allow-access-from domain="http://www.mysite.com" to-ports="25" />
<allow-access-from domain="mysite.com" to-ports="25" />
</cross-domain-policy>
תוכן קוד זה מאפשר בעזרת תגי XML גישה מ-תחום אשר אותו אנו נגדיר בקוד במיקום של "www.mysite.com" אנו נכניס את כתובת הדומיין ממנו נטען את הבאנר כלומר את כתובת הדומיין של הLOADER. יש לציין שיש להכניס את כתובת הדומיין בכמה אופציות על פי הקוד המצורף למעלה על מנת למנוע בעיות של אבטחה ( כולל HTTP, ללא HTTP, כולל WWW וכדומה...). בעיית CROSS DOMAIN בטפסים: בנוסף לבעיית האבטחה בבאנרים, ישנה בעיה זהה ודומה בשליחה וקבלה של טפסים ופרמטרים מבאנרים ועמודי נחיתה לבסיס נתונים ומערכות קוד היושבות בדומיין אחר, כלומר אם עמוד הנחיתה יושב בכתובת דומיין כלשהו, בעמוד הנחיתה ישנו טופס השולח את הפרמטרים למערכת אשר יושבת בדומיין חיצוני - מחוץ לתחום של דומיין זה, גם כאן תיתקל בבעיית CROSS DOMAIN. גם את בעיה זו פותרים בעזרת קובץ XML היושב בשרת המערכת / בסיס הנתונים ומאפשר לפלאש לבצע התקשרות והחלפת נתונים ופרמטרים בין הדומיינים 

זכויות היוצרים על התכנים באתר שמורות ל־rabbi interactive agency, ניתן להשתמש בחומרים אלו
רק בצירוף קישור לעמוד הכולל את המאמר המקורי
Rabbi Interactive Agency LTD 2004-2020 ©