Sākotnējās publicēšanas datums: 2025. gada 9. decembris
KB ID: 5074596
Kopsavilkums
Windows PowerShell 5.1 tagad parāda drošības apstiprinājuma uzvedni, izmantojot komandu Izsaukt-WebRequest tīmekļa lapu ienesei bez īpašiem parametriem. Šajā uzvednē tiek brīdināts, ka lapas skripti var darboties parsēšanas laikā un iesaka izmantot drošāko parametru -UseBasicParsing, lai izvairītos no skripta izpildes. Lietotājiem ir jāizvēlas turpināt vai atcelt darbību. Šīs izmaiņas palīdz aizsargāties pret ļaunprātīgu tīmekļa saturu, pieprasot lietotāja piekrišanu, pirms potenciāli riskantām darbībām.
Šīs izmaiņas galvenokārt ietekmē uzņēmuma vai IT pārvaldītas vides, kur PowerShell skripti tiek izmantoti automatizācijai un tīmekļa satura izgūšanai. personas ja izmantojat ierīces personiskajiem vai mājas iestatījumiem, parasti nav jāveic nekādas darbības, jo šie scenāriji ir neparasti ārpus IT pārvaldīto izvietojumu.
Kas ir mainījies?
-
Iepriekšējā darbība
-
Pilna dokumenta objektu modeļa (DOM) parsēšana, izmantojot Internet Explorer komponentus (HTMLDocument Interface (mshtml)), kas var izpildīt skriptus no lejupielādētā satura.
-
-
Jauna darbība
-
Drošības apstiprinājuma uzvedne: Pēc 2025. gada 9. decembra Windows atjauninājumu instalēšanas, palaižot PowerShell 5.1 komandu Invoke-WebRequest (zināms arī kā curl), tiek izraisīta drošības uzvedne (ja netiek lietots īpašs parametrs). Uzvedne tiek rādīta PowerShell konsolē ar brīdinājumu par skripta izpildes risku. Tas nozīmē, ka PowerShell pauzina, lai brīdinātu jūs, ka bez piesardzības pasākumi var izpildīt tīmekļa lapas skripta saturu jūsu sistēmā, kad tas tiek apstrādāts. Pēc noklusējuma, nospiežot taustiņu Enter (vai izvēloties Nē), darbība tiks atcelta drošības apsvērumu dēļ. PowerShell parāda ziņojumu, ka tas tika atcelts drošības apsvērumu dēļ, un iesaka atkārtoti palaist komandu, drošai apstrādei izmantojot parametru -UseBasicParsing. Ja izvēlēsities Jā, PowerShell turpinās parsēt lapu, izmantojot vecāku metodi (pilna HTML parsēšana), kas nozīmē, ka tiks ielādēts saturs un iegultie skripti, līdz ar to tie tiks ielādēti. Būtībā, izvēloties Jā, jūs akceptējat risku un ļaujat izpildīt komandu kā iepriekš, izvēloties Nē (noklusējums), tiek apturēta darbība jūsu aizsardzībai.
-
Interaktīvs un skriptēts lietošana: Šīs uzvednes ievads galvenokārt ietekmē interaktīvu lietojumu. Interaktīvās sesijās redzēsit brīdinājumu un ir jāatbild. Automatizētiem skriptiem (neinteraktīviem scenārijiem, piemēram, ieplānotiem uzdevumiem vai CI konveijeriem) šī uzvedne var izraisīt to, ka skripts uzkaras, gaidot ievadi. Lai to novērstu, iesakām atjaunināt šādus skriptus, lai tieši izmantotu drošos parametrus (skatiet tālāk), pārliecinieties, vai tiem nav nepieciešama manuāla apstiprināšana.
-
Rīcība
Lielākā daļa PowerShell skriptu un komandu, kas izmanto komandu Invoke-WebRequest, turpinās darboties tikai ar nelielu modifikāciju vai bez tās. Piemēram, skripti, kas lejupielādē tikai saturu vai darbojas ar atbildes pamattekstu, jo teksts vai dati netiek ietekmēti, un nav jāveic nekādas izmaiņas.
Ja jums ir skripti, kurus ietekmē šīs izmaiņas, izmantojiet kādu no šīm pieejām.
Nekādas darbības, kas jāveic, ja parasti tiek izmantota komanda Izsaukt-WebRequest, ir satura (piemēram, failu lejupielādes vai statiska teksta lasīšana) ienese un nav atkarīga no uzlabotas vietnes mijiedarbības vai HTML DOM parsēšanas. Jaunā noklusējuma darbība ir drošāka — tīmekļa saturā iegultie skripti netiks palaisti bez jūsu atļaujas, un tā ir ieteicamā konfigurācija lielākajai daļai scenāriju.
Interaktīvā lietojuma gadījumā vienkārši atbildiet Uz jauno drošības uzvedni (vai nospiediet taustiņu Enter, lai akceptētu noklusējumu) un atkārtoti izpildiet komandu ar parametru -UseBasicParsing, lai droši izgūtu saturu. Šādi netiks izpildīts skripta kods ieneses lapā. Ja bieži ienest tīmekļa saturu interaktīvi, apsveriet iespēju izmantot parametru -UseBasicParsing pēc noklusējuma komandās, lai pilnībā izlaistu uzvedni un nodrošinātu maksimālu drošību.
Automatizētiem skriptiem vai ieplānotiem uzdevumiem atjauniniet tos, lai iekļautu parametru -UseBasicParsinginvoke-WebRequest izsaukumos. Tādējādi tiek iepriekš atlasīta drošā darbība, lai uzvedne nebūtu redzama un skripts turpina darboties bez pārtraukuma. Tādējādi automatizācija darbojas nevainojami pēc atjaunināšanas, vienlaikus izmantojot uzlabotās drošības priekšrocības.
Skriptiem vai automatizācijai, kas nodarbojas ar neuzticamu vai publisku tīmekļa saturu un ir nepieciešama HTML struktūru vai veidlapu apstrāde, apsveriet iespēju tos mainīt vai atjaunināt ilgtermiņa drošībai. Tā vietā, lai paļauties uz PowerShell, lai parsēt un palaistu potenciāli bīstamas tīmekļa lapas skriptus, varat:
-
Izmantojiet citas parsēšanas metodes vai bibliotēkas (piemēram, tīmekļa lapas saturu apstrādājot kā vienkāršu tekstu vai XML, izmantojot regex vai XML/HTML parsēšanu bibliotēkas, kas neizpilda skriptus).
-
Modernizējiet pieeju mijiedarbībai tīmeklī, piemēram, izmantojot jaunāku PowerShell core (7.x vai jaunāku versiju), kas nav atkarīga no Internet Explorer programmas un nepieļauj skriptu pašanu vai izmantojot specializētus tīmekļa brāķēšanas rīkus, kas saturu apstrādā drošāk.
-
Paļaušanās uz internet Explorer raksturīgajiem līdzekļiem, jo pārlūkprogramma Internet Explorer ir novecojusi. Plānojiet no šiem līdzekļiem no šiem līdzekļiem atkārtoti rakstīt jūsu skriptu daļas, lai tās varētu strādāt vidē, kur tīmekļa saturs tiek droši apstrādāts.
-
Refactoring mērķis ir panākt nepieciešamo funkcionalitāti, neņemot vērā drošības riskus, tādējādi samazinot ar šo izmaiņu ieviestos drošākos noklusējuma iestatījumus.
Ja ir jāizmanto noteikta nepieciešamība izmantot Invoke-WebRequest komandas, kas ir pilnas HTML parsēšanas iespējas (piemēram, mijiedarbība ar formas laukiem vai strukturētu datu norakstīšana) un jūs uzticaties tīmekļa satura avotam, joprojām varat turpināt ar mantoto parsēšanas darbību katrā gadījumā. Interaktīvās sesijās tas vienkārši nozīmē, ka apstiprinājuma uzvednē ir jāizvēlas Jā, lai atļautu turpināt darbību. Katru reizi, kad to darīsit, saņemsit atgādinājumu par drošības risku. Turpināt bez parametra -UseBasicParsing būtu jābūt ierobežotam līdz scenārijiem, kad pilnībā uzticaties tīmekļa saturam (piemēram, iekšējām tīmekļa lietojumprogrammām jūsu kontrolē vai zināmām drošām tīmekļa vietnēm).
Svarīgi!: Šāda pieeja nav ieteicama skriptiem, kas darbojas neuzticamā vai publiskā tīmekļa saturā, jo tā atkārtoti veicina klusuma skripta izpildes risku, kas šim atjauninājumam ir paredzēts, lai mazinātu to ietekmi. Turklāt neinteraktīvās automatizācijas gadījumā nav iebūvēta mehānisma, kas automātiski piekristu uzvednei, tāpēc paļauties uz pilnu parsēšanu skriptos nav ieteicams (papildus riskam). Šo opciju izmantojiet reti un tikai kā pagaidu mērvienību.
Bieži uzdotie jautājumi
Parasti skripti, kas lejupielādē failus vai ieneses tīmekļa saturu kā tekstu, joprojām darbosies; pievienojiet parametru -UseBasicParsing, lai novērstu uzvednes. Skripti, kas izmanto uzlabotu HTML parsēšanu (piemēram, veidlapas vai DOM), var uzkārties vai izvadīt neapstrādātus datus, nevis strukturētus objektus. Lai apstrādātu saturu citādi, ir jāpārslēdzas uz skripta pamata parsēšanu vai modificēšanu.
Vienmēr izmantojiet parametru -UseBasicParsing ar PowerShell skriptu komandu Invoke-WebRequest, lai nodrošinātu drošu, neinteraktīvu izpildi.
Jā. Skripti atkarībā no mantotā parsēšanas ir jāatjaunina, lai nepieteiktos vai darītu darītāji.
PowerShell izmaiņas ir attiecināmas gan uz standarta atjauninājumiem, gan uzsātnes atjauninājumiem, kā rezultātā mainās tā pati darbība.
Jā. PowerShell 7 jau izmanto drošu parsēšanu pēc noklusējuma.
Sazinieties ar moduļu īpašniekiem, lai saņemtu atbalsta plānus. Lai migrētu, īslaicīgi izmantojiet iespēju izmantot lietojumprogrammu uzticamam saturam.
Lai sagatavotos un validētu šīs izmaiņas, iesakām:
-
Identificējiet skriptus, izmantojot DOM līdzekļus.
-
Automatizācijas pārbaude, izmantojot jauno noklusējumu.
-
Ierobežot mantoto pieteikšanu uzticamos avotos.
-
Plānojiet refactoring par neuzticamu saturu.