PRNext 0.1.16: das Sicherheitsupdate React

PRNext 0.1.16-alpha erfordert React, React DOM und React-Server-Dom-Webpack 19.3.1.. Die Version ist auf npm verfügbar und enthält die abgestimmte React-Abhängigkeitsuntergrenze.

Die Upstream-Hinweise betreffen die Remote-Codeausführung in React-Serverkomponenten und den Denial-of-Service in Serverfunktionen. Eine Installation, die nur React aktualisiert, kann dennoch einen veralteten Decoder beibehalten.

Was hat sich in dieser Version geändert?

Die App Router-Abhängigkeitsprüfungen lehnen React 19.3.0 und gemischte Installationen ab, die den RSC-Decoder zurücklassen. Eine separate Release-Sicherheitsebene prüft auch die erforderlichen Versionen unabhängig von der npm-Audit-Advisory-Abdeckung.

Diese Prüfungen tragen dazu bei, zu verhindern, dass eine bekanntermaßen veraltete Kombination zu einem neuen Build wird. Sie ersetzen weder die Abhängigkeitsüberwachung noch beweisen sie das Fehlen unbekannter Schwachstellen.

Diese Korrekturen betreffen React Serverkomponenten und Serverfunktionen in Anwendungen, die die betroffenen Funktionen nutzen. Durch das Framework-Update bleiben die relevanten Pakete aufeinander abgestimmt, es ersetzt jedoch nicht die Überprüfung anwendungsspezifischer Abhängigkeiten. Eine an anderer Stelle in Ihrem Arbeitsbereich aufgeführte Abhängigkeit kann dennoch vom Code getrennt sein, der in einem bereitgestellten Build eingebettet ist.

Aktualisieren Sie alle drei React-Pakete

Führen Sie den folgenden Befehl in Ihrem Projekt aus und überprüfen Sie dann Ihre Sperrdatei, um die aufgelösten Versionen zu bestätigen.

Überprüfen Sie die Sperrdatei nach der Installation und überprüfen Sie alle Paketmanager-Überschreibungen oder doppelten React-Kopien. Wenn Sie React DOM und React-Server-Dom-Webpack in einer anderen Version belassen, kann dies dazu führen, dass der Rendering-Stack inkonsistent ist. Der Befehl aktualisiert den Paketsatz; Die Anwendung benötigt weiterhin ihre normale Build- und Browservalidierung.

Terminal
npm install @thomas.f/prnext@0.1.16-alpha react@19.3.1 react-dom@19.3.1 react-server-dom-webpack@19.3.1

Erstellen Sie die Anwendung neu und starten Sie sie neu

Durch die Aktualisierung von node_modules wird JavaScript nicht ersetzt, das bereits in einer bereitgestellten Anwendung gebündelt ist. Erstellen Sie die App neu, stellen Sie die vollständige aktualisierte Ausgabe bereit und starten Sie sie dann neu.

Halten Sie die Framework- und nativen PRNext-Paketversionen aufeinander abgestimmt. Erstellen Sie bei eigenständigen Bereitstellungen die vollständige Ausgabe für das Zielbetriebssystem und die Zielarchitektur neu, anstatt nur eine neue ausführbare Datei zu kopieren.

Durch das Aktualisieren von node_modules auf einem Entwicklungscomputer werden weder ein vorhandenes Container-Image noch ein eigenständiges Artefakt geändert. Erstellen Sie einen neuen Build aus dem korrigierten Abhängigkeitsbaum und starten Sie dann den Dienst neu, der ihn tatsächlich bereitstellt. Überprüfen Sie die bereitgestellte Generation mit einer Seitenanforderung und einer repräsentativen Serveraktion, wenn Ihre Anwendung diese verwendet.

Halten Sie Node.js separat aktuell

Die React-Fixes und die Node.js-Laufzeit sind separate Updates. Durch die Aktualisierung des Knotens allein werden diese React-Hinweise nicht behoben. Durch die Installation von PRNext wird die ausführbare Node-Datei oder ein bereitgestelltes Container-Image nicht aktualisiert.

Testen Sie nach dem Update die Serveraktionen, die Authentifizierung, die dynamischen Seiten und die Fehlerbehandlung Ihrer Anwendung, bevor Sie zu Ihrem gewohnten Bereitstellungsworkflow zurückkehren.

Überprüfen Sie die vom Dienst verwendete ausführbare Knotendatei und nicht nur die in einem interaktiven Terminal angezeigte Version. Ein Prozessmanager oder Container kann eine andere ausführbare Datei auswählen. Durch den Neustart mit der korrigierten Laufzeit und die Überprüfung der Serviceausgabe wird die Lücke zwischen der Entwicklungsumgebung und dem Prozess, der Anfragen annimmt, geschlossen.

Quellen und weiterführende Literatur

Zurück zum Blog