כשמקשרים לדף באתר אחר באמצעות המאפיין target="_blank"
,
אתם יכולים לחשוף את האתר לבעיות של ביצועים ואבטחה:
- ייתכן שהדף השני יפעל באותו תהליך כמו הדף שלכם. אם הדף השני מריץ הרבה JavaScript, ייתכן שביצועי הדף ייפגעו.
- הדף השני יכול לגשת לאובייקט
window
באמצעות המאפייןwindow.opener
. זה עלול לאפשר לדף האחר להפנות את הדף לכתובת URL זדונית.
מתבצעת הוספה של rel="noopener"
או rel="noreferrer"
לקישורי target="_blank"
שלך כדי למנוע את הבעיות האלה.
איך בדיקת היעדים של Lighthouse ממקורות שונים נכשלה
מערכת Lighthouse מסמנת קישורים לא בטוחים ליעדים ממקורות שונים:
מערכת Lighthouse משתמשת בתהליך הבא כדי לזהות קישורים כלא בטוחים:
- צריך לאסוף את כל התגים מסוג
<a>
שמכילים את המאפייןtarget="_blank"
אבל לא המאפייניםrel="noopener"
אוrel="noreferrer"
. - מסננים קישורים עם אותו מארח.
מערכת Lighthouse מסננת קישורים עם אותו מארח,
יש תרחיש קצה שעליו אתם צריכים להיות מודעים אם אתם עובדים באתר גדול:
אם דף אחד מכיל קישור target="_blank"
לדף אחר באתר בלי להשתמש ב-rel="noopener"
,
ההשלכות על הביצועים של הביקורת עדיין חלות.
עם זאת, הקישורים האלה לא יופיעו בתוצאות של Lighthouse.
איך לשפר את ביצועי האתר ולמנוע נקודות חולשה באבטחה
הוספה של rel="noopener"
או rel="noreferrer"
לכל קישור שמזוהה בדוח Lighthouse.
באופן כללי, כשמשתמשים ב-target="_blank"
, תמיד
הוספה של rel="noopener"
או rel="noreferrer"
:
<a href="https://examplepetstore.com" target="_blank" rel="noopener">
Example Pet Store
</a>
- המדיניות
rel="noopener"
מונעת מהדף החדש כדי לגשת לנכסwindow.opener
מבטיח שהוא יפעל בתהליך נפרד. - ל-
rel="noreferrer"
יש את אותו אפקט אבל גם מונע את הכותרתReferer
משליחה לדף החדש. מידע נוסף זמין בקטע סוג הקישור "noreferrer".
שיתוף בטוח של משאבים ממקורות שונים כדי לקבל מידע נוסף.