Data de publicare inițială: 9 decembrie 2025
ID KB: 5074596
Acest articol descrie o modificare care afectează în principal mediile de întreprindere sau cele gestionate de IT, în care scripturile PowerShell sunt utilizate pentru automatizare și regăsirea conținutului web. Persoane utilizarea dispozitivelor în setările personale sau de domiciliu, în general, nu trebuie să efectuați nicio acțiune, deoarece aceste scenarii sunt neobișnuite în afara mediilor gestionate de IT.
|
Modificare dată |
Modificare descriere |
|
20 decembrie 2025 |
|
Rezumat
Windows PowerShell 5.1 afișează acum o solicitare de confirmare de securitate atunci când utilizați comanda Invoke-WebRequest pentru a prelua pagini web fără parametri speciali.
Avertisment de securitate: Risc de executare script Invoke-WebRequest analizează conținutul paginii web. Codul script din pagina web poate rula atunci când pagina este analizată.
ACȚIUNE RECOMANDATĂ: Utilizați comutatorul -UseBasicParsing pentru a evita executarea codului de script.
Continuați?
Această solicitare avertizează că scripturile din pagină pot rula în timpul analizării și recomandă utilizarea parametrului -UseBasicParsing pentru a evita orice execuție de script. Utilizatorii trebuie să aleagă să continue sau să anuleze operațiunea. Această modificare contribuie la protejarea împotriva conținutului web rău intenționat, solicitând consimțământul utilizatorului înainte de acțiuni potențial riscante.
Comanda Invoke-WebRequest de la PowerShell face o solicitare HTTP sau HTTPS la un server web și returnează rezultatele. Acest articol documentează o modificare de întărire în care Windows PowerShell 5.1 afișează intenționat o solicitare de confirmare de securitate atunci când utilizați comanda Invoke-WebRequest pentru a prelua pagini web fără parametri speciali. Acest comportament apare după ce clienții și serverele Windows acceptate au instalat Windows Actualizări lansat la și după 9 decembrie 2025. Pentru mai multe informații, consultați CVE-2025-54100.
Ce s-a modificat?
-
Comportamentul anterior
-
Analiză Full Document Object Model (DOM) utilizând componente Internet Explorer (HTMLDocument Interface (mshtml)), care pot executa scripturi din conținutul descărcat.
-
-
Comportament nou
-
Solicitare confirmare securitate: După instalarea actualizărilor Windows lansate pe sau după 9 decembrie 2025, rularea comenzii Invoke-WebRequest (numită și buclă) în PowerShell 5.1 va declanșa o solicitare de securitate (atunci când nu este utilizat niciun parametru special). Solicitarea apare în consola PowerShell, cu un avertisment despre riscul de executare a scripturilor. Acest lucru înseamnă că PowerShell se întrerupe pentru a vă avertiza că, fără măsuri de precauție, conținutul scriptului paginii web se poate executa pe sistemul dvs. atunci când este procesat. În mod implicit, dacă apăsați pe Enter (sau alegeți Nu), operațiunea va fi anulată pentru siguranță. PowerShell va afișa un mesaj că a fost anulat din cauza problemelor de securitate și sugerează rularea din nou a comenzii utilizând parametrul -UseBasicParsing pentru procesare în siguranță. Dacă alegeți Da, PowerShell va continua să analizarea paginii utilizând metoda mai veche (analiză HTML completă), ceea ce înseamnă că va încărca conținutul și scripturile încorporate așa cum era utilizat. În esență, dacă alegeți Da înseamnă că acceptați riscul și că permiteți comenzii să ruleze așa cum era înainte, în timp ce alegerea Nu (setarea implicită) oprește acțiunea pentru a vă proteja.
-
Utilizare interactivă vs. scriptată: Introducerea acestei solicitări afectează în principal utilizarea interactivă. În sesiunile interactive, veți vedea avertismentul și va trebui să răspundeți. Pentru scripturi automate (scenarii neinteractive, cum ar fi activități planificate sau canale CI), această solicitare poate face scriptul să se blocheze în timp ce așteptați intrarea. Pentru a evita acest lucru, vă recomandăm să actualizați astfel de scripturi pentru a utiliza în mod explicit parametri siguri (vedeți mai jos), asigurându-vă că nu necesită confirmare manuală.
-
Luați măsuri
Majoritatea scripturilor și comenzilor PowerShell care utilizează comanda Invoke-WebRequest vor continua să funcționeze cu puține modificări sau fără modificări. De exemplu, scripturile care descarcă doar conținut sau funcționează cu corpul de răspuns ca text sau date nu sunt afectate și nu necesită modificări.
Dacă aveți scripturi afectate de această modificare, utilizați una dintre următoarele abordări.
Pentru preluarea conținutului, nu este necesară nicio acțiune dacă utilizarea tipică a comenzii Invoke-WebRequest este să preluați conținut (cum ar fi descărcarea fișierelor sau citirea textului static) și nu vă bazați pe interacțiunea complexă cu site-ul sau pe analiza HTML DOM. Noul comportament implicit este mai sigur- scripturile încorporate în conținutul web nu vor rula fără permisiunea dvs., iar aceasta este configurația recomandată pentru majoritatea scenariilor.
Pentru utilizare interactivă, răspundeți pur și simplu nu la noua solicitare de securitate (sau apăsați pe Enter pentru a accepta setarea implicită) și rulați din nou comanda cu parametrul -UseBasicParsing pentru a regăsi în siguranță conținutul. Acest lucru va evita executarea oricărui cod script în pagina preluată. Dacă preluați frecvent conținut web în mod interactiv, luați în considerare utilizarea parametrului -UseBasicParsing în mod implicit în comenzi pentru a ignora solicitarea și a asigura o siguranță maximă.
Pentru scripturi automate sau activități programate, actualizați-le pentru a include parametrul -UseBasicParsing în apelurile Invoke-WebRequest. Acest lucru preselectează comportamentul de siguranță, astfel încât solicitarea să nu apară și scriptul continuă să ruleze fără întrerupere. Procedând astfel, vă asigurați că automatizarea rulează fără sincope după actualizare, profitând în același timp de securitatea îmbunătățită.
-
Pentru scripturile care rulează cu opțiunea -NoProfile: Dacă scriptul are multe apariții ale apelurilor Invoke-WebRequest, declarați $PSDefaultParameterValues['Invoke-WebRequest:UseBasicParsing'] = $true în partea de sus a scriptului.
-
Atunci când Invoke-WebRequest este utilizat cu parametrul -UseBasicParsing , analiza Full Document Object Model (DOM) utilizând componente Internet Explorer (HTMLDocument Interface (mshtml)) nu este posibilă.
Pentru scripturile sau automatizarea care se ocupă cu conținut web care nu este de încredere sau public și care necesită procesarea structurilor sau formularelor HTML, luați în considerare refacerea sau actualizarea acestora pentru siguranța pe termen lung. În loc să vă bazați pe PowerShell pentru a analiza și a rula scripturi de pagini web potențial periculoase, puteți să:
-
Utilizați metode de analiză sau biblioteci alternative (de exemplu, tratați conținutul paginii web ca text simplu sau XML, utilizând biblioteci de analiză XML/HTML care nu execută scripturi).
-
Modernizați-vă abordarea față de interacțiunile web, probabil utilizând PowerShell Core mai nou (versiunea 7.x sau mai recentă), care nu depinde de motorul Internet Explorer și evită rularea scripturilor sau utilizând instrumente specializate de răzuire web care gestionează conținutul mai în siguranță. Limitați dependența de caracteristicile specifice Internet Explorer, deoarece Internet Explorer este perimat. Planificați să rescrieți părți ale scripturilor care depind de aceste caracteristici, astfel încât să poată funcționa într-un mediu în care conținutul web este gestionat în siguranță.
-
Invoke-WebRequest din PowerShell Core (versiunea 7.x sau mai recentă) nu acceptă analiza DOM utilizând componente Internet Explorer. Analiza sa implicită va regăsi în siguranță conținutul fără executarea scriptului.
-
-
Scopul cu refactoring este de a atinge funcționalitatea necesară fără a vă expune riscurilor de securitate, îmbrățișând astfel valorile implicite mai sigure introduse de această modificare.
Dacă aveți o nevoie specifică de a utiliza capacitățile complete de analiză HTML ale comenzii Invoke-WebRequest (cum ar fi interacțiunea cu câmpurile de formular sau eliminarea datelor structurate) și aveți încredere în sursa conținutului web, puteți continua cu comportamentul de analiză moștenit, de la caz la caz. În sesiunile interactive, acest lucru înseamnă pur și simplu să alegeți Da în solicitarea de confirmare pentru a permite continuarea operațiunii. Veți primi un memento cu riscul de securitate de fiecare dată când faceți acest lucru. Continuarea fără parametrul -UseBasicParsing ar trebui să fie limitată la scenarii în care aveți încredere deplină în conținutul web (de exemplu, aplicații web interne aflate sub controlul dvs. sau site-uri web sigure cunoscute).
Important: Această abordare nu este recomandată pentru scripturile care rulează împotriva conținutului web care nu este de încredere sau public, deoarece reintroduce riscul de executare a scripturilor silențioase pe care această actualizare intenționează să le atenueze. De asemenea, pentru automatizarea neinteractivă, nu există niciun mecanism încorporat pentru a consimți automat solicitarea, așa că nu se recomandă să vă bazați pe analiza completă în scripturi (pe lângă faptul că sunteți riscant). Utilizați această opțiune mai rar și doar ca măsură temporară.
Întrebări frecvente
În majoritatea cazurilor, scripturile care descarcă fișiere sau preiau conținut web ca text vor funcționa în continuare. Pentru a evita solicitarea, adăugați parametrul -UseBasicParsing.
Scripturile care utilizează analiza HTML complexă (cum ar fi formulare sau DOM) pot bloca sau genera date brute în loc de obiecte structurate; va trebui să comutați la analiza de bază sau să modificați scriptul pentru a gestiona altfel conținutul.
Utilizați întotdeauna parametrul -UseBasicParsing cu comanda Invoke-WebRequest din scripturile PowerShell, pentru a asigura executarea sigură și neinteractivă.
Da. Scripturile în funcție de analiza moștenită trebuie să fie actualizate pentru a opta sau a fi refactorizate.
Modificarea din PowerShell se aplică atât la actualizările standard, cât și la actualizările rapide, rezultând aceeași modificare de comportament.
Da. PowerShell 7 utilizează deja o analiză sigură în mod implicit.
Proprietarii modulului de contact pentru planurile de asistență. Utilizați temporar optarea pentru conținut de încredere în timpul migrării.
Pentru a pregăti și a valida această modificare, vă recomandăm să:
-
Identificați scripturile utilizând caracteristicile DOM.
-
Testați automatizarea cu noua valoare implicită.
-
Limitați opțiunea de înscriere moștenită la surse de încredere.
-
Planificați refacerea conținutului care nu este de încredere.