PowerShell 5.1: Invoke-WebRequest: מניעת ביצוע קובץ Script מתוכן אינטרנט

חל על
Win 10 Ent LTSB 2016 Win 10 Ent LTSC 2019 Windows 10 IoT Enterprise LTSC 2021 Windows 10, version 22H2, all editions Windows 11 Home and Pro, version 22H2 Windows 11 Enterprise Multi-Session, version 22H2 Windows 11 Enterprise and Education, version 22H2 Windows 11 IoT Enterprise, version 22H2 Windows 11 SE, version 23H2 Windows 11 Home and Pro, version 23H2 Windows 11 Enterprise and Education, version 23H2 Windows 11 Enterprise Multi-Session, version 23H2 Windows 11 version 24H2, all editions Windows 11 version 25H2, all editions Windows Server 2008 Premium Assurance Windows Server 2008 R2 Premium Assurance Windows Server 2012 ESU Windows Server 2012 R2 ESU Windows Server 2016 Windows Server 2019 Windows Server 2022 Windows Server 2025

הערה

  • תאריך פרסום מקורי: 9 בדצמבר 2025
  • מזהה KB: 5074596

הערה

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

יומן רישום שינויים
שנה תאריך תיאור השינוי
דצמבר 20, 2025
  • נוספה "אזהרת אבטחה" לסעיף "סיכום".
  • הוספתי את הפסקה הבאה לסעיף "סיכום" לצורך הבהרה:

    הפקודה Invoke-WebRequest של PowerShell מבצעת בקשת HTTP או HTTPS לשרת אינטרנט ומחזירה את התוצאות. מאמר זה מתעד שינוי הקשחה שבו Windows PowerShell 5.1 מציג במכוון בקשת אישור אבטחה בעת שימוש בפקודה Invoke-WebRequest כדי להביא דפי אינטרנט ללא פרמטרים מיוחדים. אופן פעולה זה מתרחש לאחר שלקוחות ושרתים נתמכים של Windows מותקנים התקנת עדכונים של Windows שהופצו ב- 9 בדצמבר 2025. לקבלת מידע נוסף, ראה CVE-2025-54100.
  • הוספת את נקודות התבליט הבאות אל "עבור קבצי Script אוטומטיים או משימות מתוזמנות" באפשרות 1 של המקטע "בצע פעולה".
    • עבור קבצי Script הפועלים עם האפשרות ללא פרופיל: אם קובץ ה- Script כולל מופעים רבים של קריאות Invoke-WebRequest, הצהר $PSDefaultParameterValues['Invoke-WebRequest:UseBasicParsing'] = $true בחלק העליון של קובץ ה- Script.
    • כאשר נעשה שימוש ב - Invoke-WebRequest עם הפרמטר -UseBasicParsing , ניתוח מודל אובייקט מסמך מלא (DOM) באמצעות רכיבי Internet Explorer (ממשק HTMLDocument (mshtml)) אינו אפשרי.
  • נוספה נקודת התבליט הבאה לנקודת התבליט "הפוך את הגישה שלך לאינטראקציות באינטרנט למודרנית" של אפשרות 2 במקטע "נקוט פעולה".
    • Invoke-Webrequest ב- Powershell Core (גירסה 7.x ואילך) אינו תומך בניתוח DOM באמצעות רכיבי Internet Explorer. ניתוח ברירת המחדל שלו יאחזר בבטחה את התוכן ללא ביצוע Script.

Summary

Windows PowerShell 5.1 מציג כעת בקשה לאישור אבטחה בעת שימוש בפקודה Invoke-WebRequest כדי להביא דפי אינטרנט ללא פרמטרים מיוחדים.

הערה

  • אזהרת אבטחה: סיכון ביצוע קובץ Script Invoke-WebRequest מנתח את התוכן של דף האינטרנט. ייתכן שקוד Script בדף האינטרנט יופעל כאשר הדף עובר ניתוח דף.
  • הפעולה המומלצת: השתמש בבורר -UseBasicParsing כדי להימנע מביצוע קוד סקריפיט.
  • האם ברצונך להמשיך?

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

הפקודה Invoke-WebRequest של PowerShell מבצעת בקשת HTTP או HTTPS לשרת אינטרנט ומחזירה את התוצאות. מאמר זה מתעד שינוי הקשחה שבו Windows PowerShell 5.1 מציג במכוון בקשת אישור אבטחה בעת שימוש בפקודה Invoke-WebRequest כדי להביא דפי אינטרנט ללא פרמטרים מיוחדים. אופן פעולה זה מתרחש לאחר שלקוחות ושרתים נתמכים של Windows התקינו את עדכונים Windows שהופצו ב- 9 בדצמבר 2025. לקבלת מידע נוסף, ראה CVE-2025-54100.

מה השתנה?

  • אופן פעולה קודם

    • ניתוח מודל אובייקטים של מסמך מלא (DOM) באמצעות רכיבי Internet Explorer (ממשק HTMLDocument (mshtml)), שיכול להפעיל קבצי Script מתוכן שהורד.
  • אופן פעולה חדש

    • בקשה לאישור אבטחה: לאחר התקנת עדכוני Windows שהופצו ב- 9 בדצמבר 2025 או לאחר מכן, הפעלת הפקודה Invoke-WebRequest (המכונה גם curl) ב- PowerShell 5.1 תפעיל בקשת אבטחה (כאשר לא נעשה שימוש בפרמטר מיוחד). ההנחיה מופיעה במסוף PowerShell עם אזהרה לגבי סיכון ביצוע Script

      משמעות הדבר היא ש- PowerShell מושהה כדי להזהיר אותך שללא אמצעי זהירות, תוכן קובץ ה- Script של דף האינטרנט עלול לפעול במערכת שלך בעת עיבודו. כברירת מחדל, אם תקיש Enter (או תבחר 'לא'), הפעולה תבוטל מטעמי בטיחות. PowerShell יציג הודעה שהוא בוטל עקב בעיות אבטחה ויציע להפעיל מחדש את הפקודה באמצעות
      -UseBasicParsing פרמטר לעיבוד בטוח. אם תבחר כן, PowerShell ימשיך לנתח את הדף באמצעות השיטה הקודמת (ניתוח HTML מלא), כלומר הוא יטען את התוכן ואת כל קבצי ה- Script המוטבעים כפי שהיה בעבר. בעיקרון, בחירה באפשרות 'כן ' פירושה שאתה מקבל את הסיכון ומאפשר לפקודה לפעול כפי שהיא פעלה קודם לכן, בעוד שבחירה ב'לא ' (ברירת המחדל) מפסיקה את הפעולה כדי להגן עליך.

    • שימוש אינטראקטיבי לעומת Scripted: הצגת הנחיה זו משפיעה בעיקר על שימוש אינטראקטיבי. במפגשים אינטראקטיביים, תראה את האזהרה ותצטרך להגיב. עבור קבצי Script אוטומטיים (תרחישים לא אינטראקטיביים כגון משימות מתוזמנות או קווי CI), בקשה זו עלולה לגרום לקובץ ה- Script להיתקע בעת ההמתנה לקלט. כדי להימנע מכך, אנו ממליצים לעדכן סקריפטים כאלה כך שישתמשו במפורש בפרמטרים בטוחים (ראה להלן), ולוודא שהם אינם דורשים אישור ידני.

נקוט פעולה

רוב קבצי ה- Script והפקודות של PowerShell המשתמשים בפקודה Invoke-WebRequest ימשיכו לפעול עם שינויים מעטים או ללא שינויים. לדוגמה, קבצי Script שרק מורידים תוכן או עובדים עם גוף התגובה כטקסט או כנתונים אינם מושפעים ואינם דורשים שינויים.

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

אפשרות 1: השתמש בברירת המחדל המאובטחת החדשה

להבאת תוכן, לא נדרשת פעולה אם השימוש האופייני שלך בפקודה Invoke-WebRequest הוא להביא תוכן (כגון הורדת קבצים או קריאת טקסט סטטי) ואינך מסתמך על אינטראקציה מתקדמת עם האתר או ניתוח DOM של HTML. אופן הפעולה החדש המהווה ברירת מחדל מאובטח יותר - קבצי Script שמוטבעים בתוכן אינטרנט לא יפעלו ללא רשותך - וזוהי התצורה המומלצת עבור רוב התרחישים.

לשימוש אינטראקטיבי, פשוט השב לא לבקשת האבטחה החדשה (או הקש Enter כדי לקבל את ברירת המחדל) והפעל מחדש את הפקודה שלך עם הפרמטר -UseBasicParsing כדי לאחזר את התוכן בבטחה. פעולה זו תמנע הפעלת קוד Script כלשהו בדף שהובא. אם אתה מביא לעתים קרובות תוכן אינטרנט באופן אינטראקטיבי, שקול להשתמש בפרמטר -UseBasicParsing כברירת מחדל בפקודות שלך כדי לדלג על ההנחיה לחלוטין ולהבטיח בטיחות מרבית.

עבור קבצי Script אוטומטיים או משימות מתוזמנות, עדכן אותם כדי לכלול את הפרמטר -UseBasicParsing בקריאות Invoke-WebRequest . פעולה זו בוחרת מראש את אופן הפעולה הבטוח כך שההנחיה לא תופיע וקובץ ה- Script ימשיך לפעול ללא הפרעה. על-ידי ביצוע פעולה זו, אתה מבטיח שהאוטומציה שלך תפעל בצורה חלקה לאחר העדכון תוך ניצול היתרונות של האבטחה המשופרת.

  • עבור סקריפטים שפועלים עם האפשרות -NoProfile: אם הסקריפט כולל מופעים רבים של קריאות Invoke-WebRequest , הצהר $PSDefaultParameterValues['Invoke-WebRequest:UseBasicParsing'] = $true בחלק העליון של הסקריפט.
  • כאשר נעשה שימוש ב - Invoke-WebRequest עם הפרמטר -UseBasicParsing , ניתוח מודל אובייקט מסמך מלא (DOM) באמצעות רכיבי Internet Explorer (ממשק HTMLDocument (mshtml)) אינו אפשרי.
אפשרות 2: סקריפטים לאבטחה לטווח ארוך

עבור סקריפטים או אוטומציה העוסקים בתוכן אינטרנט לא מהימן או ציבורי ודורשים עיבוד של מבנים או טפסי HTML, שקול לשחזר או לעדכן אותם לבטיחות לטווח ארוך. במקום להסתמך על PowerShell כדי לנתח ולהפעיל קבצי Script של דפי אינטרנט שעלולים להיות מסוכנים, באפשרותך לבצע את הפעולות הבאות:

  • השתמש בשיטות ניתוח או בספריות חלופיות (לדוגמה, התייחס לתוכן דף האינטרנט כטקסט רגיל או XML, תוך שימוש בספריות ניתוח regex או XML/HTML שאינן מבצעות קבצי Script).

  • מודרניזציה של הגישה שלך לאינטראקציות באינטרנט, אולי באמצעות PowerShell Core חדש יותר (גירסה 7.x ואילך) שאינו תלוי במנוע של Internet Explorer ונמנע מהפעלת קבצי Script, או על ידי שימוש בכלי גירוד אינטרנט מיוחדים המטפלים בתוכן בצורה מאובטחת יותר. הגבל את ההסתמכות על תכונות ספציפיות ל- Internet Explorer, מכיוון ש- Internet Explorer הוצא משימוש. תכנן לשכתב חלקים מקבצי ה- Script שלך התלויים בתכונות אלה כדי שיוכלו לעבוד בסביבה שבה תוכן אינטרנט מטופל בבטחה.

    • Invoke-WebRequest ב- PowerShell Core (גירסה 7.x ואילך) אינו תומך בניתוח DOM באמצעות רכיבי Internet Explorer. ניתוח ברירת המחדל שלו יאחזר בבטחה את התוכן ללא ביצוע Script.
  • המטרה עם שיפוץ היא להשיג את הפונקציונליות הדרושה לך מבלי לחשוף את עצמך לסיכוני אבטחה, ובכך לאמץ את ברירות המחדל הבטוחות יותר שהוצגו על ידי שינוי זה.

אפשרות 3: הצטרפות לאופן פעולה מדור קודם (תרחישים מהימנים בלבד)

אם יש לך צורך ספציפי להשתמש ביכולות ניתוח HTML המלאות של הפקודה Invoke-WebRequest (כגון אינטראקציה עם שדות טופס או גירוד נתונים מובנים) ואתה נותן אמון במקור תוכן האינטרנט, אתה עדיין יכול להמשיך עם אופן הפעולה של ניתוח מדור קודם על בסיס כל מקרה לגופו. במפגשים אינטראקטיביים, המשמעות היא פשוט לבחור כן בבקשת האישור כדי לאפשר את המשך הפעולה. תקבל תזכורת לגבי סיכון האבטחה בכל פעם שתעשה זאת. להמשיך ללא הפרמטר -UseBasicParsing צריך להיות מוגבל לתרחישים שבהם אתה נותן אמון מלא בתוכן האינטרנט (לדוגמה, יישומי אינטרנט פנימיים שבשליטתך או אתרי אינטרנט בטוחים ידועים).

חשוב

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

שאלות נפוצות

האם שינוי זה משפיע על קבצי ה- Script שלי?

ברוב המקרים, קבצי Script שמורידים קבצים או מביאים תוכן אינטרנט כטקסט עדיין יפעלו. כדי להימנע מההנחיה, הוסף את הפרמטר -UseBasicParsing .

סקריפטים המשתמשים בניתוח HTML מתקדם (כמו טפסים או DOM) עשויים להיתקע או להוציא נתונים גולמיים במקום אובייקטים מובנים; יהיה עליך לעבור לניתוח בסיסי או לשנות את קובץ ה- Script שלך כדי לטפל בתוכן באופן שונה.

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

השתמש תמיד בפרמטר -UseBasicParsing עם הפקודה Invoke-WebRequest בקבצי Script של PowerShell כדי להבטיח ביצוע בטוח ולא אינטראקטיבי.

האם שינוי זה דורש פעולה כלשהי עבור סקריפטים מדור קודם?

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

כיצד שינוי זה משתקף בעדכוני Hotpatch ועדכונים סטנדרטיים?

השינוי ב- PowerShell חל הן על עדכונים רגילים והן על עדכוני Hotpatch, והתוצאה היא אותו שינוי אופן פעולה.

האם שינוי זה תואם ל- PowerShell 7?

כן. PowerShell 7 כבר משתמש בניתוח מאובטח כברירת מחדל.

מה עליי לעשות לגבי סקריפטים או מודולים של צד שלישי?

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

כיצד ניתן לבצע אימות שהסביבה שלי מוכנה?

כדי להתכונן לשינוי זה ולאמת אותו, אנו מומלצים:

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