הטמעת מציג מסמכים מאובטח: 7 תכונות חיוניות שמפתחים חוצי‑החזית לעתים מפסידים
3/6/2026

הטמעת מציג מסמכים מאובטח: 7 תכונות חיוניות שמפתחים חוצי‑החזית לעתים מפסידים

ההטמעה של מציג מסמכים מאובטח: 7 תכונות חיוניות שמפתחים חוצי‑החזית לעתים מפסידים

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

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


1. הצפנה מקצה לקצה של זרם המסמך

למה זה חשוב

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

כיצד ליישום

שלבפעולה
הצפנה בצד השרתהצפן את הקובץ (AES‑256‑GCM הוא בחירה יציבה) לפני שמירתו או שידורו.
אבטחת תעבורהמסור את ה‑blob המוצפן באמצעות TLS 1.3.
פענוח בצד הלקוחהפעיל Web Worker שמקבל את הזרם המוצפן, מפענח אותו בזיכרון, ומזין את הטקסט הגולמי ישירות לתוך הקנבס של המציג.
לעולם אל תחשוף את המפתחשמור את מפתח הפענוח בטוקן קצר‑חיים שנוצר על ידי השרת (ראו תכונה #4).

עד שהמציג מציג, המסמך מעולם לא נחשף בטקסט גלוי ברשת או בחוט הראשי.


2. רשימות לבנות ב‑Content‑Security‑Policy (CSP)

הסיכון

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

נקודות מרכזיות

  • ‘unsafe‑inline’ ו‑‘unsafe‑eval’ אסורים עבור סקריפטים.
  • רק CDN של המציג (או חבילה מתארחת בעצמך) מותר לשרת JavaScript.
  • ה‑frames מוגבלים לדומיין המציג המהימן.

CSP הדוק מצמצם באופן דרמטי את משטח ההתקפה של העמוד המארח את ההטמעה.


3. בידוד אותו‑מקור באמצעות ארגז חול iframe

למה ארגז חול?

גם עם CSP, דף מושחת יכול לנסות להגיע אל ה‑DOM של המציג. <iframe> מבודד יוצר כלוב אבטחה שהדף המארח אינו יכול לשבור ללא רשות מפורשת.

דגלי ארגז חול שיש להימנע מהם

  • allow-top-navigation – מונע מהמציג לקחת שליטה על חלון הרמה העליונה.
  • allow-popups – חוסם חלונות קופצים בלתי צפויים שיכולים לשמש לפישינג.

אם המציג צריך לתקשר עם דף האב (למשל, לסנכרון UI), השתמש ב‑postMessage עם בדיקת מקור מפורשת.


4. בקרת גישה מבוססת טוקן

הבעיה עם כתובות URL ישירות

כתובות URL ציבוריות וסטטיות מאפשרות לכל אחד עם הקישור להוריד את הקובץ לנצח.

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


5. סימון מים ושכבות דינמיות

מטרה

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

טיפים ליישום

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

אם מסמך דולף מתגלה, המזהה המוטמע מצביע ישירות על המקור.


6. הגבלות הורדה והדפסה

ברירות מחדל של הדפדפן

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

דגלים מגן

אפשרות מציגהשפעה
disableDownload: trueמוסֵתר כל ממשק “הורדה” ומניע קיצורי Ctrl+S.
disablePrint: trueמונע מ‑Ctrl+P לפתוח את תיבת הדו‑שיח של ההדפסה עבור ההטמעה.
preventContextMenu: trueחוסם את תפריט ההקשר הטבעי מעל אזור המציג.

שלב זאת עם ארגז החול של ה‑iframe כדי להבטיח שהדף המארח אינו יכול לעקוף אותם דרך JavaScript.


7. רישום ביקורת והוקי אירועים

ערך הנראות

אפילו המציג החזק ביותר עשוי לשמש לרעה. רישום של מי פתח איזה מסמך, מתי, ואילו פעולות בוצעו יוצר מסלול פורנסי.

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


מסקנה

הטמעת מציג מסמכים אינה רק עניין של ממשק משתמש; היא אחריות אבטחה. על‑ידי שילוב הצפנה מקצה לקצה, Content‑Security‑Policy קפדנית, ארגז חול iframe מבודד, גישה מבוססת טוקן, סימני מים דינמיים, הגבלות הורדה/הדפסה, ורישום ביקורת מקיף, אתה הופך הטמעה פשוטה לרכיב חזק, חסין מפגיעה.

מוכן לאבטח את האפליקציה הבאה שלך?

  1. הורד את ה‑SDK החינמי מ‑https://doconut.com – ללא תוספים, ללא תלויות נוספות.
  2. העתק את רשימת הבדיקה בת שבעת הנקודות לתבנית ה‑pull‑request שלך כדי להפוך את האבטחה להרגל.
  3. יישם את התכונה הראשונה היום ושיתוף את ההתקדמות שלך בתגובות—אחריות קהילתית עוזרת לכולם להישאר בטוחים.

שמור על אבטחה, שמור על מהירות, ותכנות שמח!