Eredeti közzététel dátuma: 2025. december 9., csütörtök
TUDÁSBÁZIS-azonosító: 5074596
Összefoglalás
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ül kéri le a weblapokat. Ez a figyelmeztetés arra figyelmeztet, hogy az oldalon lévő szkriptek futtathatók elemzés közben, és javasolja a biztonságosabb -UseBasicParsing paraméter használatát a szkriptek végrehajtásának elkerülése érdekében. A felhasználóknak a művelet folytatását vagy megszakítását kell választaniuk. Ez a módosítás segít megvédeni a kártékony webes tartalmakat azáltal, hogy felhasználói hozzájárulást kér a potenciálisan kockázatos műveletek előtt.
Ez a változás elsősorban a nagyvállalati vagy it-felügyelt környezetekre van hatással, ahol a PowerShell-szkriptek automatizálásra és webes tartalmak lekérésére szolgálnak. Kapcsolatok az eszközök személyes vagy otthoni beállításaiban való használata általában nem igényel semmilyen műveletet, mivel ezek a forgatókönyvek ritkán fordulnak elő az informatikai felügyeletű üzemelő példányokon kívül.
Mi változott?
-
Előző viselkedés
-
Teljes dokumentumobjektum-modell (DOM) elemzése Internet Explorer-összetevők (HTMLDocument Interface (mshtml)) használatával, amelyek szkripteket futtathatnak a letöltött tartalomból.
-
-
Új viselkedés
-
Biztonsági megerősítési kérés: 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 az Invoke-WebRequest parancs (más néven curl) futtatása biztonsági kérdést aktivál (ha nincs speciális paraméter). A parancssor megjelenik a PowerShell-konzolon a szkriptek végrehajtásának kockázatával kapcsolatos figyelmeztetéssel. Ez azt jelenti, hogy a PowerShell szünetelteti a figyelmeztetést, hogy a weblapszkript tartalma elővigyázatosság nélkül végrehajtható a rendszeren a feldolgozáskor. Alapértelmezés szerint, ha lenyomja az Enter billentyűt (vagy a Nem gombot választja), a művelet a biztonság érdekében megszakad. A PowerShell egy üzenetet jelenít meg, amely szerint biztonsági problémák miatt megszakadt, és javasolja a parancs ismételt futtatását a -UseBasicParsing paraméterrel a biztonságos feldolgozáshoz. Ha az Igen lehetőséget választja, a PowerShell a régebbi metódussal (teljes HTML-elemzéssel) elemzi a lapot, ami azt jelenti, hogy betölti a tartalmat és az esetleges beágyazott szkripteket. Az Igen lehetőség választása lényegében azt jelenti, hogy elfogadja a kockázatot, és lehetővé teszi, hogy a parancs a korábbiakhoz hasonlóan fusson, miközben a Nem (az alapértelmezett) beállítás leállítja a műveletet a védelem érdekében.
-
Interaktív és szkriptelt használat: Ennek a kérdé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 kérdés azt okozhatja, hogy a szkript várakozik a bemenetre. Ennek elkerülése érdekében javasoljuk, hogy frissítse az ilyen szkripteket a biztonságos paraméterek explicit használatára (lásd alább), hogy ne legyen szükség manuális megerősítésre.
-
Művelet végrehajtása
Az Invoke-WebRequest parancsot használó Legtöbb PowerShell-szkript és -parancs továbbra is kevés módosítással vagy módosítás nélkül fog működni. Például azok a szkriptek, amelyek csak szöveget töltenek le, vagy szövegként vagy adatokként dolgoznak a válasz törzsével, nem lesznek hatással, és nem igényelnek módosításokat.
Ha olyan szkriptekkel rendelkezik, amelyeket érint ez a változás, használja az alábbi módszerek egyikét.
Nincs szükség műveletre, ha az Invoke-WebRequest parancs jellemző használata a tartalom beolvasása (például fájlok letöltése vagy statikus szöveg olvasása), és nem támaszkodik speciális webhely-interakcióra vagy HTML DOM-elemzésre. Az új alapértelmezett viselkedés biztonságosabb – a webes tartalmakba ágyazott szkriptek nem futnak az Ön engedélye nélkül – és ez a legtöbb forgatókönyv esetében ez az ajánlott konfiguráció.
Interaktív használat esetén egyszerűen válaszoljon a Nem válaszra az új biztonsági kérdésre (vagy nyomja le az Enter billentyűt az alapértelmezett beállítás elfogadásához), majd futtassa újra a parancsot a -UseBasicParsing paraméterrel a tartalom biztonságos lekéréséhez. Így nem kell szkriptkódot végrehajtani a beolvasott oldalon. Ha gyakran olvassa be interaktívan a webes tartalmakat, érdemes lehet alapértelmezés szerint a -UseBasicParsing paramétert használni a parancsokban, hogy kihagyja a parancssort, és maximális biztonságot biztosítson.
Automatizált szkriptek vagy ütemezett feladatok esetén frissítse őket úgy, hogy tartalmazzák a -UseBasicParsing paramétert az Invoke-WebRequest hívásokhoz. Ez előre kiválasztja a biztonságos viselkedést, így a parancssor nem jelenik meg, és a szkript megszakítás nélkül fut tovább. Ezzel biztosítja, hogy az automatizálás zökkenőmentesen fusson a frissítés után, miközben továbbra is kihasználja a továbbfejlesztett biztonságot.
Olyan szkriptek vagy automatizálások esetében, amelyek nem megbízható vagy nyilvános webes tartalommal foglalkoznak, és HTML-struktúrák vagy űrlapok feldolgozását igénylik, fontolja meg az újrabontásukat vagy frissítésüket a hosszú távú biztonság érdekében. Ahelyett, hogy a PowerShellre támaszkodna a potenciálisan veszélyes weblapszkriptek elemzéséhez és futtatásához, a következőket teheti:
-
Használjon alternatív elemzési módszereket vagy kódtárakat (például a weblap tartalmát egyszerű szövegként vagy XML-ként kezelje, reguláris vagy XML/HTML-elemzési kódtárak használatával, amelyek nem hajtanak végre szkripteket).
-
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 szkriptek futtatását, vagy a tartalmakat biztonságosabban kezelő 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 újraírni a szkriptek azon részeit, amelyek ezektől a funkcióktól függenek, hogy biztonságosan kezelhetők legyenek a webes tartalmak.
-
Az újrabontás célja a szükséges funkciók elérése anélkül, hogy biztonsági kockázatoknak tenné ki magát, és ezáltal a módosítás által bevezetett biztonságosabb alapértelmezett beállításokat is magában hordozhatja.
Ha az Invoke-WebRequest parancsok teljes HTML-elemzési képességeit (például az űrlapmezőkkel való interakciót vagy a strukturált adatok lekérését) szeretné használni, és megbízik a webes tartalom forrásában, akkor is folytathatja az örökölt elemzési viselkedést eseti alapon. Interaktív munkamenetekben ez egyszerűen azt jelenti, hogy a megerősítési kérésnél az Igen lehetőséget választja a művelet folytatásához. Minden alkalommal emlékeztetőt kap a biztonsági kockázatról. A -UseBasicParsing paraméter nélkül olyan forgatókönyvekre kell korlátozódnia, amelyekben teljes mértékben megbízik a webes tartalomban (például az Ön felügyelete alatt álló belső webalkalmazások vagy az ismert biztonságos webhelyek).
Fontos: Ez a módszer nem ajánlott nem megbízható vagy nyilvános webes tartalmakon futó szkriptek esetében, mivel újra bevethető a csendes szkriptek végrehajtásának kockázata, amelyeket a frissítés célja enyhíteni. Emellett a nem interaktív automatizáláshoz nincs beépített mechanizmus, amely automatikusan jóváhagyja a kérést, így a szkriptek teljes elemzésére való támaszkodás nem ajánlott (a kockázatosság mellett). Ezt a lehetőséget csak ideiglenes mértékként és takarékosan használja.
Gyakori kérdések
A legtöbb esetben a fájlokat letöltő vagy a webes tartalmat szövegként beolvasó szkriptek továbbra is működni fognak; adja hozzá a -UseBasicParsing paramétert a kérések elkerülése érdekében. A speciális HTML-elemzést (például űrlapokat vagy DOM-et) használó szkriptek strukturált objektumok helyett nyers adatokat is lefagyhatnak vagy kimenetként adhatnak ki; alapszintű elemzésre kell váltania, vagy módosítania kell a szkriptet a tartalom eltérő kezeléséhez.
A biztonságos, nem interaktív végrehajtás érdekében mindig használja a -UseBasicParsing paramétert az Invoke-WebRequest paranccsal a PowerShell-szkriptekben.
Igen. Az örökölt elemzéstől függően a szkripteket frissíteni kell a jóváhagyáshoz vagy az újrabontáshoz.
A PowerShellben a standard és a gyorsjavítási frissítésekre is alkalmazható változás, ami ugyanazt a viselkedésváltozást eredményezi.
Igen. A PowerShell 7 alapértelmezés szerint már biztonságos elemzést használ.
Támogatási csomagokért forduljon a modultulajdonosokhoz. Ideiglenesen használhatja a bejelentkezést a megbízható tartalmakhoz az áttelepítés során.
A módosítás előkészítéséhez és érvényesítéséhez a következőket javasoljuk:
-
Szkriptek azonosítása DOM-funkciókkal.
-
Tesztelje az automatizálást az új alapértelmezett beállítással.
-
Az örökölt hozzáférés korlátozása megbízható forrásokra.
-
Tervezze meg a nem megbízható tartalmak újrabontását.