Megjegyzés
- Eredeti közzétételi dátum: 2025. december 9.
- Tudásbáziscikk azonosítója: 5074596
Megjegyzés
Ez a cikk egy olyan változást ismertet, amely elsősorban a vállalati vagy informatikai részleg által felügyelt környezeteket érinti, ahol PowerShell-parancsfájlokat használnak automatizáláshoz és webes tartalmak beolvasására. Az eszközöket személyes vagy otthoni környezetben használó People-eknek általában nincs teendőjük, mivel ezek a forgatókönyvek ritkák az informatikai részleg által felügyelt környezeteken kívül.
Módosítási napló
| Dátum módosítása | Módosítás leírása |
|---|---|
| 2025. december 20. |
|
Összegzés
A Windows PowerShell 5.1 mostantól biztonsági megerősítést kérő üzenetet jelenít meg, amikor az Invoke-WebRequest paranccsal speciális paraméterek nélküli weblapokat hív le.
Megjegyzés
- Biztonsági figyelmeztetés: A parancsfájl végrehajtási kockázata Invoke-WebRequest a weblap tartalmának elemzésére szolgál. A weblapon lévő parancskód a lap elemzésekor futhat.
- AJÁNLOTT TEENDŐ: A -UseBasicParsing kapcsolóval elkerülheti a parancsfájlkód végrehajtását.
- Biztosan folytatja?
Ez a kérés figyelmeztet, hogy a lapon lévő parancsfájlok futtatása történhet elemzés közben, és a
-UseBasicParsing paraméter a szkript végrehajtásának elkerüléséhez. A felhasználóknak el kell dönteniük, hogy folytatják vagy megszakítják a műveletet. Ez a módosítás segít a kártékony webes tartalmak elleni védelemben azáltal, hogy a potenciálisan kockázatos műveletek előtt felhasználói hozzájárulást követel meg.
A PowerShell Invoke-WebRequest parancsa HTTP- vagy HTTPS-kérést küld egy webkiszolgálónak, és visszaadja az eredményeket. Ez a cikk egy szigorú változást dokumentál, amely miatt a Windows PowerShell 5.1 szándékosan biztonsági megerősítést kérő üzenetet jelenít meg, amikor az Invoke-WebRequest paranccsal speciális paraméterek nélküli weblapokat hív le. Ez a viselkedés azután fordul elő, hogy a támogatott Windows-ügyfelek és kiszolgálók telepítették a 2025. december 9-én és azt követően kiadott Windows-Frissítések. További információ: CVE-2025-54100.
Mi változott?
Korábbi viselkedés
- Teljes dokumentumobjektum-modell (DOM) elemzése Internet Explorer összetevőkkel (HTMLDocument Interface (mshtml)), amely parancsfájlokat hajthat végre a letöltött tartalmakból.
Új viselkedés
Biztonsági megerősítést kérő üzenet: A 2025. december 9-én vagy azt követően kiadott Windows-frissítések telepítése után a PowerShell 5.1-ben a Invoke-WebRequest parancs (más néven curl) futtatása biztonsági kérést vált ki (ha nincs speciális paraméter használatban). A parancsfájl végrehajtási kockázatával kapcsolatos figyelmeztetéssel jelenik meg a PowerShell-konzolon.
Ez azt jelenti, hogy a PowerShell szüneteltetve figyelmezteti Önt, hogy előzetes óvintézkedések nélkül a weblap-szkript tartalma végrehajtást végrehajthat a rendszeren a feldolgozás során. Alapértelmezés szerint, ha lenyomja az Enter billentyűt (vagy a Nem gombot választja), a rendszer a biztonság érdekében megszakítja a műveletet. A PowerShell üzenetben jelzi, hogy a biztonsági okok miatt a művelet megszakadt, és javasolja a parancs újrafuttatását a következővel:
-UseBasicParsing paraméter a biztonságos feldolgozáshoz. Ha az Igen lehetőséget választja, a PowerShell folytatja a lap elemzését a régebbi módszerrel (teljes HTML-elemzés), ami azt jelenti, hogy a korábban megszokott módon betölti a tartalmat és a beágyazott parancsfájlokat. Az Igen érték választása lényegében azt jelenti, hogy elfogadja a kockázatot, és lehetővé teszi, hogy a parancs ugyanúgy fusson, mint korábban, míg a Nem (alapértelmezett) lehetőség választása leállítja a műveletet, hogy megvédje Önt.Interaktív vs. parancsfájlalapú használat: Ennek a kérésnek a bevezetése elsősorban az interaktív használatot érinti. Az interaktív munkamenetekben megjelenik a figyelmeztetés, és válaszolnia kell. Automatizált szkriptek (nem interaktív forgatókönyvek, például ütemezett feladatok vagy CI-folyamatok) esetén ez a parancsfájl lefagyását okozhatja, miközben a bevitelre vár. Ennek elkerülése érdekében javasoljuk, hogy frissítse ezeket a szkripteket, hogy explicit módon biztonságos paramétereket használjanak (lásd alább), biztosítva, hogy ne igényeljenek manuális megerősítést.
Vágjon bele
A Invoke-WebRequest parancsot használó PowerShell-parancsprogramok és -parancsok többsége továbbra is működni fog, módosítás nélkül vagy módosítás nélkül. Például azok a parancsfájlok, amelyek csak tartalmat töltenek le vagy csak szövegként vagy adatként dolgoznak a válasz törzsével, nem érintettek, és nem igényelnek módosítást.
Ha vannak olyan szkriptjei, amelyeket érint ez a változás, használja az alábbi megközelítések egyikét.
1. lehetőség: Az új alapértelmezett biztonsági beállítás használata
A tartalom lekéréséhez nincs teendő, ha a Invoke-WebRequest parancsot általában tartalom lehívására használja (például fájlok letöltésére vagy statikus szöveg olvasására), és nem támaszkodik speciális webhelyinterakcióra vagy HTML DOM-elemzésre. Az új alapértelmezett viselkedés biztonságosabb – a webes tartalmakba ágyazott szkriptek nem futnak az engedélye nélkül – és ez a legtöbb forgatókönyvhöz ajánlott konfiguráció.
Interaktív használathoz egyszerűen válaszoljon a Nem paranccsal az új biztonsági kérdésre (vagy az Enter billentyűt lenyomva fogadja el az alapértelmezett parancsot), majd futtassa újra a parancsot a -UseBasicParsing paraméterrel a tartalom biztonságos beolvasásához. Ezzel elkerülhető bármilyen parancsfájl végrehajtása a lekért lapon. Ha gyakran olvas be webes tartalmakat interaktív módban, érdemes alapértelmezés szerint a -UseBasicParsing paramétert használni a parancsokban, hogy a maximális biztonság érdekében kihagyja a kérdést.
Automatizált szkriptek vagy ütemezett feladatok esetén frissítse őket, hogy tartalmazzák a -UseBasicParsing paramétert a Invoke-WebRequest hívások esetén. Ez előre bejelöli a biztonságos viselkedést, így a parancsfájl nem jelenik meg, a parancsfájl pedig megszakítás nélkül futhat. Ezzel biztosíthatja, hogy az automatizálás zökkenőmentesen fusson a frissítés után, miközben továbbra is kihasználhatja a megnövekedett biztonsági előnyöket.
- A -NoProfile opcióval futó szkriptek esetén: Ha a szkriptben számos Invoke-WebRequest hívás előfordulása, deklarálja $PSDefaultParameterValues['Invoke-WebRequest:UseBasicParsing'] = $true a parancsfájl tetején.
- Ha az Invoke-WebRequest függvényt a -UseBasicParsing paraméterrel használja, a teljes dokumentumobjektum-modell (DOM) az Internet Explorer összetevőivel (HTMLDocument Interface (mshtml)) végzett elemzése nem lehetséges.
2. lehetőség: Parancsfájlok újrafaktorálása a hosszú távú biztonság érdekében
A nem megbízható vagy nyilvános webes tartalmakkal foglalkozó, és HTML-struktúrák vagy -űrlapok feldolgozását igénylő szkriptek vagy automatizálás esetén a hosszú távú biztonság érdekében fontolja meg azok refaktorálását vagy frissítését. Ahelyett, hogy a PowerShellre támaszkodna a potenciálisan veszélyes weblap-szkriptek elemzéséhez és futtatásához, a következőket teheti:
Használjon alternatív elemzési módszereket vagy kódtárakat (kezelje például a weblap tartalmát egyszerű szövegként vagy XML-formátumként, miközben olyan regex- vagy XML-/HTML-elemzési könyvtárakat használ, amelyek nem hajtanak végre parancsfájlokat).
Modernizálja a webes interakciók megközelítését, például az újabb PowerShell Core (7.x vagy újabb verzió) használatával, amely nem függ az Internet Explorer motorjától, és elkerüli a parancsfájlok futtatását, vagy a tartalmak biztonságosabb kezelésére szolgáló speciális webkaparó eszközök használatával. Korlátozza az Internet Explorer-specifikus szolgáltatásokra való támaszkodást, mivel az Internet Explorer elavult. Tervezze meg a szkriptek azon részeinek újraírását, amelyek ezektől a funkcióktól függnek, hogy olyan környezetben működhessenek, ahol a webes tartalmak biztonságosan kezelhetők.
- A PowerShell Core (7.x vagy újabb verzió) Invoke-WebRequest parancsa nem támogatja az Internet Explorer összetevői használatával történő DOM-elemzést. Az alapértelmezett elemzése biztonságosan lekéri a tartalmat szkript végrehajtása nélkül.
A refaktorálás célja az, hogy anélkül érje el a szükséges funkciókat, hogy ki lenne téve magát a biztonsági kockázatoknak, ezáltal elfogadva a módosítás által bevezetett biztonságosabb alapértelmezéseket.
3. lehetőség: Örökölt viselkedés jóváhagyása (csak megbízható forgatókönyvek esetén)
Ha kifejezetten szüksége van a Invoke-WebRequest parancs összes HTML-elemzési képességének használatára (például az űrlapmezők használatához vagy a strukturált adatok beolvasásához), és megbízik a webes tartalom forrásában, továbbra is folytathatja a korábbi elemzési viselkedést eseti alapon. Interaktív munkamenetekben ez egyszerűen azt jelenti, hogy a megerősítési kérdésnél az Igen lehetőséget választja a művelet folytatásához. Minden ilyen alkalommal emlékeztetőt kap a biztonsági kockázatról. A -UseBasicParsing paraméter nélküli folytatást azokra a forgatókönyvekre kell korlátozni, ahol teljes mértékben megbízik a webes tartalomban (például az Ön ellenőrzése alatt álló belső webalkalmazásokban vagy ismert biztonságos webhelyeken).
Fontos
Ez a megközelítés nem ajánlott a nem megbízható vagy nyilvános webes tartalmakon futó parancsfájlok esetén, mivel újból bevezeti a parancsfájlok csendes végrehajtásának kockázatát, amelynek kockázatát a frissítés hivatott csökkenteni. Emellett a nem interaktív automatizálás esetében nincs beépített mechanizmus a parancs automatikus elfogadásához, ezért nem ajánlott a szkriptek teljes elemzésére támaszkodni (amellett, hogy kockázatos). Ezt a beállítást csak mértékletesen és csak ideiglenes intézkedésként használja.
Gyakori kérdések
Hatással van ez a változás a szkriptreimre?
A legtöbb esetben azok a parancsfájlok, amelyek szövegként töltenek le fájlokat vagy hívnak le webes tartalmakat, továbbra is működnek. A kérdés megjelenésének elkerülése érdekében adja hozzá a -UseBasicParsing paramétert.
A fejlett HTML-elemzést használó parancsfájlok (például űrlapok vagy DOM) lefagyhatnak vagy nyers adatokat hozhatnak létre strukturált objektumok helyett; A tartalom eltérő kezeléséhez át kell váltania egyszerű elemzésre, vagy módosítania kell a parancsfájlt.
Hogyan kerülhetem el, hogy új megerősítési kérés jelenjen meg a szkriptjeimben?
A biztonságos, nem interaktív végrehajtás biztosítása érdekében mindig használja a -UseBasicParsing paramétert a PowerShell-szkriptek Invoke-WebRequest parancsával.
Igényel ez a módosítás valamilyen műveletet a régebbi parancsfájlok esetében?
Igen. A régi értelmezéstől függő szkripteket frissíteni kell az engedélyezéshez vagy a refaktoráláshoz.
Hogyan jelenik meg ez a változás a gyorsjavítási és normál frissítésekben?
A PowerShell módosítása a standard frissítésekre és a gyorsjavítási frissítésekre is vonatkozik, ami ugyanazt a viselkedésbeli változást eredményezi.
Összhangban van ez a módosítás a PowerShell 7-es verziójával?
Igen. A PowerShell 7 alapértelmezés szerint már biztonságos elemzést használ.
Mit tegyek a külső parancsfájlokkal vagy modulokkal?
A támogatási csomagokért forduljon a modul tulajdonosaihoz. Az áttelepítés során ideiglenesen aktiválhatja a megbízható tartalmak jóváhagyását.
Hogyan ellenőrizhetem, hogy a környezetem készen áll-e?
A változásra való felkészüléshez és érvényesítéséhez az alábbiakat javasoljuk:
- Parancsprogramok azonosítása a DOM-funkciókkal.
- Tesztelje az automatizálást az új alapértelmezett beállítással.
- A régi jóváhagyás korlátozása megbízható forrásokra.
- Tervezze meg a nem megbízható tartalom refaktorálását.