Pradinė publikavimo data: 2025 m. gruodžio 9 d.
KB ID: 5074596
Suvestinė
Windows PowerShell 5.1 dabar rodo saugos patvirtinimo raginimą naudojant komandą Invoke-WebRequest tinklalapiams iškviesti be specialių parametrų. Šis raginimas įspėja, kad scenarijai puslapyje gali veikti analizuojant ir pataria naudoti saugesnį "UseBasicParsing" parametrą, kad išvengtumėte scenarijaus vykdymo. Vartotojai turi pasirinkti tęsti arba atšaukti operaciją. Šis pakeitimas padeda apsisaugoti nuo kenkėjiško žiniatinklio turinio reikalaujant vartotojo sutikimo prieš atliekant galimai rizikingus veiksmus.
Šis pakeitimas pirmiausia paveiks įmonės arba IT valdomas aplinkas, kuriose automatizavimo ir žiniatinklio turinio gavimo tikslais naudojami "PowerShell" scenarijai. žmonės naudoti įrenginius asmeniniuose arba namų parametruose, paprastai nereikia imtis jokių veiksmų, nes šie scenarijai dažniausiai pasitaiko už IT valdomų diegimų ribų.
Kas pasikeitė?
-
Ankstesnis veikimas
-
Viso dokumento objekto modelio (DOM) analizė naudojant "Internet Explorer" komponentus (HTMLDocument sąsaja (mshtml)), kurie gali vykdyti scenarijus iš atsisiųsto turinio.
-
-
Naujas veikimas
-
Saugos patvirtinimo raginimas: Įdiegus 2025 m. gruodžio 9 d. arba vėliau išleistus "Windows" naujinimus, paleidus "PowerShell 5.1" komandą "Invoke-WebRequest" (dar vadinamą garbana) (kai nenaudojamas specialus parametras). Raginimas rodomas "PowerShell" konsolėje su įspėjimu apie scenarijaus vykdymo riziką. Tai reiškia, kad "PowerShell" pristabdytas įspėti, kad be atsargumo priemonių jūsų sistemoje gali būti vykdomas tinklalapio scenarijaus turinys, kai jis apdorojamas. Pagal numatytuosius parametrus, jei paspausite "Enter" (arba pasirinksite Ne), operacija bus atšaukta dėl saugos. "PowerShell" parodys pranešimą, kad jis atšauktas dėl saugos problemų, ir siūlo iš naujo paleisti komandą naudojant parametrą -UseBasicParsing saugiam apdorojimui. Jei pasirinksite Taip, "PowerShell" pereis prie puslapio analizės naudojant senesnį metodą (visą HTML analizavimo metodą), o tai reiškia, kad ji įkels turinį ir visus įdėtuosius scenarijus, kaip anksčiau. Iš esmės, pasirinkus Taip, sutinkate su rizika ir leidžiate komandai veikti taip, kaip buvo anksčiau, o pasirinkus Ne (numatytoji reikšmė), veiksmas sustabdomas, kad jus apsaugotų.
-
Interaktyvus ir scenarijų naudojimas: Šio raginimo įvadas pirmiausia veikia interaktyvų naudojimą. Interaktyviuose seansuose matysite įspėjimą ir turėsite atsakyti. Automatiniams scenarijams (neinteraktyviems scenarijams, pvz., suplanuotoms užduotims arba CI srautams), dėl šio raginimo scenarijus gali užstrigti laukiant įvesties. Kad to išvengtumėte, rekomenduojame atnaujinti tokius scenarijus, kad būtų galima aiškiai naudoti saugius parametrus (žr. toliau), kad jų nereikia patvirtinti rankiniu būdu.
-
Imtis veiksmų
Dauguma "PowerShell" scenarijų ir komandų, kurios naudoja komandą "Invoke-WebRequest", veiks mažai modifikuojant arba visai nekeitus. Pvz., scenarijai, kurie atsisiunčia turinį arba veikia tik su atsakymo tekstu kaip tekstas ar duomenys, nepaveikiami ir nereikia nieko keisti.
Jei turite scenarijų, kuriuos paveikė šis pakeitimas, naudokite vieną iš toliau nurodytų būdų.
Nereikia atlikti jokių veiksmų, jei įprastinis komandos Invoke-WebRequest naudojimas yra turinio iškvietimas (pvz., failų atsisiuntimas ar statinio teksto skaitymas) ir nepriklausote nuo išplėstinės sąveikos su svetaine ar HTML DOM analizės. Naujas numatytasis veikimas yra saugesnis – į žiniatinklio turinį įdėti scenarijai nebus vykdomi be jūsų leidimo– tai rekomenduojama konfigūracija daugeliui scenarijų.
Norėdami interaktyviai naudoti, tiesiog atsakykite Ne į naują saugos raginimą (arba paspauskite "Enter ", kad priimtumėte numatytąją reikšmę) ir iš naujo paleiskite komandą naudodami parametrą "-UseBasicParsing", kad saugiai gautumėte turinį. Taip išvengsite scenarijaus kodo vykdymo iškviedtame puslapyje. Jei dažnai interaktyviai gaunate žiniatinklio turinį, apsvarstykite galimybę komandose naudoti parametrą -UseBasicParsing pagal numatytuosius parametrus, kad iš viso praleistumėte raginimą ir užtikrintumėte didžiausią saugą.
Automatinių scenarijų arba suplanuotų užduočių atveju atnaujinkite juos, kad į "Invoke-WebRequest" iškvietimus būtų įtrauktas parametras "-UseBasicParsing". Šis iš anksto pasirenka saugų veikimą, kad raginimas nebūtų rodomas ir scenarijus toliau veiktų be trukdžių. Taip užtikrinsite, kad automatizavimas sklandžiai veiktų po naujinimo, tuo pačiu metu pasinaudojant pagerinta sauga.
Scenarijams arba automatizavimui, kurie susiję su nepatikimu arba viešu žiniatinklio turiniu ir kuriems reikia apdoroti HTML struktūras ar formas, apsvarstykite galimybę juos pakartotinai įtraukti arba atnaujinti, kad būtų galima užtikrinti ilgalaikę saugą. Užuot pasitikėdami "PowerShell", kad išanalizuotumėte ir paleistumėte potencialiai pavojingus tinklalapio scenarijus, galite:
-
Naudokite alternatyvius analizės metodus arba bibliotekas (pvz., tinklalapio turinį traktuokite kaip paprastąjį tekstą arba XML, naudodami regex arba XML/HTML analizės bibliotekas, kurios nevykdo scenarijų).
-
Modernizuokite savo požiūrį į žiniatinklio sąveiką, galbūt naudodami naujesnę "PowerShell Core" (7.x arba naujesnę versiją), kuri nepriklauso nuo "Internet Explorer" modulio ir vengia vykdyti scenarijų, arba naudodami specializuotus žiniatinklio iškarpos įrankius, kurie saugesnį turinį apdoroja.
-
Apribokite pasitikėjimą "Internet Explorer" specifinėmis funkcijomis, nes "Internet Explorer" nebenaudojama. Planuokite iš naujo rašyti nuo tų funkcijų priklausančių scenarijų dalis, kad jie galėtų dirbti aplinkoje, kurioje saugiai tvarkomas žiniatinklio turinys.
-
Refactoring tikslas yra pasiekti savo reikiamas funkcijas, nekeliant sau saugumo pavojų, tokiu būdu apimantis saugesnes numatytąsias reikšmes, atsiradusias dėl šio pakeitimo.
Jei jums reikia naudoti " Invoke-WebRequest " komandas su visomis HTML analizės galimybėmis (pvz., sąveikauti su formų laukais arba išgrandant struktūrinius duomenis) ir pasitikite žiniatinklio turinio šaltiniu, vis tiek galite toliau dirbti su senstelėjusiu analizės veikimu kiekvienu atveju. Interaktyviuose seansuose tai tiesiog reiškia, kad patvirtinimo raginime pasirinkus Taip leidžiama tęsti operaciją. Kaskart, kai tai padarysite, gausite priminimą apie saugos riziką. Tęsti be parametro -UseBasicParsing turėtų būti taikoma tik scenarijams, kai visiškai pasitikite žiniatinklio turiniu (pvz., vidinėmis žiniatinklio programomis, kurias valdote, arba žinomomis saugiomis svetainėmis).
Svarbu: Šis metodas nerekomenduojamas scenarijams, vykdomiems su nepatikimu ar viešu žiniatinklio turiniu, nes iš naujo nustatoma tyliojo scenarijaus vykdymo rizika, kurią siekiama sumažinti šiuo naujinimu. Be to, neinteraktyvaus automatizavimo atveju nėra įtaisytojo mechanizmo, kuris automatiškai sutiktų su raginimu, todėl nepatariama pasitikėti visišku scenarijų analizavimu (be to, kad tai rizikinga). Naudokite šią parinktį saiingai ir tik kaip laikiną priemonę.
Dažnai užduodami klausimai
Daugeliu atvejų scenarijai, kurie atsisiunčia failus arba iškvieta žiniatinklio turinį kaip tekstą, vis tiek veiks; įtraukite parametrą -UseBasicParsing, kad išvengtumėte raginimų. Scenarijai, kuriuose naudojama išplėstinė HTML analizė (pvz., formos ar DOM), gali pakibti arba pateikti neapdorotus duomenis, o ne struktūrinius objektus; jums reikės pereiti prie bazinio analizavimo arba modifikuoti scenarijų, kad turinys būtų tvarkomas kitaip.
Visada naudokite parametrą -UseBasicParsing su "PowerShell" scenarijų komanda Invoke-WebRequest, kad užtikrintumėte saugų, neinteraktyvų vykdymą.
Taip. Scenarijai, atsižvelgiant į senstelėjusį analizavimo, turi būti atnaujinti, kad būtų galima pasirinkti arba pakeisti.
"PowerShell" pakeitimas, taikomas tiek standartiniams naujinimams, tiek sparčiųjų pataisų naujinimams, todėl keičiasi tas pats veikimas.
Taip. Pagal numatytuosius parametrus "PowerShell 7" jau naudoja saugų analizavimą.
Kreipkitės į palaikymo planų modulio savininkus. Laikinai naudokite pasirinkimą patikimam turiniui perkelti.
Kad pasiruoštumėte ir patvirtintumėte šį keitimą, rekomenduojame:
-
Nustatykite scenarijus naudodami DOM funkcijas.
-
Test automation with the new default.
-
Senstelėjusį pasirinkimą apriboti iki patikimų šaltinių.
-
Planuokite nepatikimo turinio pakartotinio aktyvumo planą.