רכיבי Socket לא מתפקדים כראוי ב-Flash Player

בגרסאות Adobe Flash Player אחרי 9.0.115.0, כל אחת מהתצורות שלהלן עשויה שלא לפעול כמתוכנן:

  • קובץ SWF מנסה חיבור של רכיב Socket או XMLSocket בחזרה למארח של עצמו, מבלי לבצע קריאת loadPolicyFile לאחזור קובץ מדיניות של Socket.
  • קובץ SWF מנסה חיבור של רכיב Socket או XMLSocket בחזרה למארח של עצמו, וטוען קובץ מדיניות שלא מציין את התחום שלו במסגרת התחומים המותרים.
  • קובץ SWF מנסה חיבור של רכיב Socket או XMLSocket בחזרה למארח כלשהו, עם קובץ מדיניות HTTP המעניק הרשאה.

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

סיבה

גרסאות Flash Player אחרי 9.0.115.0 משנות את דרישות ההרשאה לחיבורי Socket, וקובצי מדיניות HTTP כבר לא מספקים הרשאות לחיבורי Socket. ל-Flash Player יש שני סוגים של קובצי מדיניות:

  • קובצי מדיניות HTTP, שאלו קובצי crossdomain.xml בשרת, אשר קובעים אם קובצי SWF מתחומים אחרים יוכלו לטעון את תוכן שרת זה.
  • קובצי מדיניות Socket, המגדירים את היציאות שאליהם Flash Player יוכל להתחבר באמצעות חיבורי Socket או XMLSocket.

בגרסאות קודמות, לא היה צורך בקובץ מדיניות Socket, המהווה קובץ מדיניות שנפרס על-ידי רכיב Socket, על מנת להתחבר ליציאות מעל 1024, אם

  • התחום שהגיש את קובץ ה-SWF היה אותו התחום של חיבור ה-Socket, ואם
  • בתחום המגיש מתארח קובץ crossdomain.xml.

תצורה קודמת זו הייתה כרוכה בסיכון מבחינת הלקוחות, עקב הגדלת מספר השירותים הקריטיים המוגשים מיציאות מעל 1024. שינוי זה עוזר גם לצמצם את האפשרות שהתקפת איגוד מחדש של DNS באמצעות רכיבי Socket של Flash Player תגיע אל המארח של הקורבן. כדי לטפל בבעיה זו, Flash Player דורש כעת קובץ מדיניות Socket עבור כל חיבור Socket, ללא תלות ביציאת היעד ובהימצאותו של קובץ crossdomain.xml. כעת יש מיקום ראשי קבוע עבור קובצי מדיניות Socket ביציאה 843. קובץ המדיניות ביציאה זו יוכל להגדיר מטה-מדיניות, שקובעת אם לאפשר במחשב המארח קבצים אחרים של מדיניות Socket. כברירת מחדל, המערכת מאשרת כל קובץ של מדיניות Socket.

אם בעבר קובצי SWF שלך היו יכולים להתחבר למארח המקור שלהם ביציאות מעל 1024, משום שהיה קובץ crossdomain.xml, כעת יידרש לך קובץ מדיניות Socket. את קובץ מדיניות ה-Socket ניתן להגיש מהיציאה הראשית של מדיניות Socket‏ (843) או מאותה היציאה כמו חיבור ה-Socket.

אבחון

השתמש במידע שלהלן כדי לברר אם שינוי זה משפיע על האתר שלך. Flash Player 9.0.115.0 הוסיף תכונה חדשה - רישום קובצי מדיניות ביומן. יומן קובצי המדיניות מראה הודעות עבור כל אירוע הקשור לקובצי מדיניות: ניסיונות לאחזר אותם, ניסיונות מוצלחים וכושלים לעבד אותם, ומה קרה לבקשות התלויות בהם. תוכל למצוא פירוט מלא של ההודעות ביומן קובצי המדיניות בנספח ב' של שינויים בקובצי מדיניות ב-Flash Player 9 ו-10.

כדי להשתמש ביומן קובצי המדיניות:

  1. התקן גרסת איתור באגים של Flash Player 9.0.115.0 ואילך. תוכל להשתמש ב-Flash Player מכל סוג: ActiveX,‏ יישום plug-in או עצמאי. באפשרותך לקבל את גרסת איתור הבאגים של Flash Player דרך ההורדות במרכז התמיכה של Flash Player.
  2. ברר את המיקום של קובץ התצורה mm.cfg. זהו קובץ תצורה כללי לאיתור באגים, אשר גרסאות איתור הבאגים של Flash Player קוראות בשלב הפעלת המערכת. הקובץ mm.cfg נמצא בספריית הבית שלך. לדוגמה:

    • Windows‏: C:\Documents and Settings\username
    • Windows Vista‏: C:\Users\username
    • Mac OS ו-Linux‏: ‎/home/username
  3. צור קובץ mm.cfg אם אינו קיים, ולאחר מכן הוסף אחת מהשורות שלהלן או את שתיהן:

    • PolicyFileLog=1 # מפעילה את רישום קובצי המדיניות
    • PolicyFileLogAppend=1 # אופציונלית; ללא ניקוי של היומן בשלב הפעלת המערכת
    • אם האפשרות PolicyFileLogAppend לא מופעלת, כל SWF חדש ברמת הבסיס ינקה את קובץ יומן הרישום. אם האפשרות policyfilelogappendpolicyfilelogappend<>‎ מופעלת, התוכן הקודם של קובץ יומן הרישום יישמר תמיד, וקובץ יומן הרישום יגדל בסוף.

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

  4. מצא את המיקום שבו ייכתב policyfiles.txt, יומן קובצי הרישום. ייתכן שהקובץ אינו קיים עדיין; Flash Player ייצור אותו בפעם הבאה שיופעל קובץ SWF. תוכל למצוא את policyfiles.txt במיקומים הבאים:
    • Windows‏: C:\Documents and Settings\username\Application Data\Macromedia\Flash Player\Logs
    • Windows Vista‏: C:\Users\username[ AppData]\Roaming\Macromedia\Flash Player\Logs
    • Mac OS‏: ‎/Users/username/Library/Preferences/Macromedia/Flash Player/Logs (בדרך כלל, תוכניות לא כותבות קובצי יומן בספריית ההעדפות, אך זה מה שקורה למעשה)
    • Linux‏: ‎/home/username/.macromedia/Flash_Player/Logs
  5. כדי לבדוק את ההגדרות שלך, הפעל קובץ SWF כלשהו ב-Flash Player ולאחר מכן סגור את Flash Player (או את הדפדפן).

  6. policyfiles.txt יופיע כעת בספריית היומנים (Logs). ודא שזמן השינוי אירע לאחרונה. פתח את הקובץ וודא שמופיעה בו הודעה אחת לפחות ("Root-level SWF loaded"). אם כן, רישום קובצי המדיניות ביומן פועל.

  7. בקר בתוכן ה-SWF שברצונך לבדוק. הרץ את התוכן דרך תרחישים כלשהם, שיגרמו לו להיתקל בקובצי מדיניות. כשתסיים, סגור את Flash Player.
  8. קרא את policyfiles.txt כדי לקבל מידע על מה שאירע עם קובצי המדיניות במהלך הפעלת הבדיקה. אם תראה הודעות שאינן ברורות, ראה שינויים בקובצי מדיניות ב-Flash Player 9 ו-10.

  9. אם תמצא ב-policyfiles.txt מידע שימושי שברצונך לשמור לעיון בעתיד, שנה את השם של קובץ יומן הרישום לשם שאינו policyfiles.txt, או העבר אותו לספרייה אחרת, כדי ש-Flash Player לא יחליף את היומן כאשר יופעל שוב.

פתרון: יצירה של קובץ מדיניות Socket המתיר התחברות למארח

כדי לטפל בבעיה זו, עליך ליצור קובץ מדיניות Socket המתיר התחברות למארח. את קובץ המדיניות הזה ניתן להגיש מהמיקום הראשי של מדיניות Socket ביציאה 843 או מיציאת היעד של חיבור ה-Socket. על קובץ מדיניות ה-Socket לכלול את כל התחומים שלהם מותר להתחבר ל-Socket, בכלל זה הוא עצמו. אם קובץ מדיניות ה-Socket מתארח במיקום הראשי של קובצי מדיניות Socket, יש לכלול מטה-מדיניות במיקום שבו מותר לשים קובצי מדיניות Socket.

השינויים בקובצי מדיניות Socket מתוארים בפירוט תחת שינויים בקובצי מדיניות ב-Flash Player 9 ו-10. (ההודעות ביומן מתוארות בפירוט בנספח ב'.)

לעיון נוסף

לקבלת מידע על אבטחה של Flash Player, עבור אל דף האבטחה של Flash Player.

השינויים בקבצים בין-תחומיים ובקובצי מדיניות Socket מתוארים גם הם בפירוט תחת שינויים בקובצי מדיניות ב-Flash Player 9 ו-10.

עבודה זו בוצעה ברישיון של Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  הודעות המתפרסמות ב- Twitter™‎ ו- Facebook אינן מכוסות בתנאי Creative Commons.

הצהרות משפטיות   |   מדיניות פרטיות מקוונת