‫Kursleiter:
‫In diesem Video werden wir also
‫ein weiteres NPM-Paket verwenden,
‫um ein paar wirklich wichtige Sicherheits-HTTP-Header zu setzen.
‫Um diese Header
‫zu setzen, verwenden wir also wieder eine Middleware-Funktion,
‫die wiederum aus einem NPM-Paket stammt.
‫Also, lass uns das
‫installieren und es heißt Helm.
‫Dies ist also eine Art Standard in der
‫Express-Entwicklung, sodass jeder, der
‫eine Express-App erstellt, immer dieses Helmpaket verwenden sollte.
‫Denn auch hier verwendet Express
‫nicht alle bewährten Sicherheitspraktiken von Haus aus.
‫Also müssen wir im Grunde manuell vorgehen
‫und sie dort ablegen, okay.
‫Also,
‫const, Helm, fordern, Helm.
‫Okay, also lass uns das gleich nach diesem machen, und
‫dieses könnte nicht einfacher sein,
‫alles was wir tun müssen, ist
‫hier Helm zu nennen und das wird
‫dann die Middleware-Funktion erzeugen, die direkt hier platziert werden sollte, okay.
‫Also in App. verwenden,
‫wir brauchen immer eine Funktion, keinen Funktionsaufruf, oder?
‫Hier rufen wir also diese Funktion
‫auf und dies wird dann wiederum eine
‫Funktion zurückgeben, die hier sitzt, bis sie aufgerufen wird, in Ordnung.
‫Und es ist am besten, dieses Helmpaket
‫früh im Middleware-Stack zu
‫verwenden, damit diese Header wirklich sicher gesetzt sind, okay.
‫Also nicht wie irgendwo
‫am
‫Ende, sondern gleich am Anfang und
‫eigentlich hier am Anfang als erste aller Middlewares, okay.
‫Und wir bauen unseren Middleware-Stack hier wirklich aus. Geben
‫wir einfach jedem von ihnen einen Namen.
‫Also Sicherheit, HTP, Header.
‫Das stimmt natürlich nicht.
‫und auch lassen Sie uns tatsächlich ein VRP verwenden.
‫Sicherheits-HTP festlegen, Anfragen
‫von
‫derselben API begrenzen.
‫Jetzt haben wir hier auch dieses hier.
‫Das ist also im Grunde Entwicklungsprotokollierung.
‫Dann wird dieser hier als Body-Parser bezeichnet.
‫Also im Grunde das
‫Einlesen von Daten aus dem Körper in req. Karosserie.
‫Okay.
‫Und tatsächlich, da wir hier
‫sind, implementieren wir das, was ich in
‫der Theorievorlesung erwähnt
‫habe, in der ich sagte, dass wir die
‫Datenmenge begrenzen können, die in den Körper gelangt.
‫Erinnere dich daran?
‫Hier in json können wir also tatsächlich einige Optionen
‫angeben und dafür übergeben wir wie
‫immer ein Objekt.
‫Also können
‫wir hier sagen, begrenzen und begrenzen wir es auf 10 Kilobyte, okay.
‫Und damit das Paket es
‫dann versteht, wird es diesen String
‫hier in aussagekräftige Daten zerlegen, in Ordnung?
‫Und wenn wir jetzt einen Körper haben, der größer als 10 Kilobyte
‫ist, wird er im Grunde nicht akzeptiert, in Ordnung?
‫Und schließlich
‫dient dieser hier
‫zum Bereitstellen statischer Dateien, okay.
‫Und das ist schließlich nur so, wie hier einige Test-Middleware.
‫Behalten wir es einfach hier, weil es manchmal nützlich ist.
‫Zum Beispiel, um sich hier wie
‫damals die Überschriften anzuschauen.
‫Okay, das ist der Helm.
‫Lassen Sie uns jetzt
‫eine Anfrage stellen und uns dann alle Header ansehen,
‫die uns im Grunde genommen werden.
‫Senden wir es hierher und
‫dann sehen Sie, dass wir 14 Header haben.
‫Das ist also viel mehr als
‫zuvor und die Neuen sind im Grunde diese
‫hier, Prefetch-Steuerung ausgeschaltet.
‫Wir haben diese strenge Transportsicherheit, Sie
‫haben die Download-Optionen, es gibt auch
‫diese hier für XSS-Schutz und so versteht der
‫Browser diese Header und
‫kann dann im Grunde darauf reagieren, in Ordnung.
‫Werfen wir noch schnell
‫einen Blick in die Helmdokumentation.
‫Also natürlich
‫wie immer auf GitHub.
‫Hier sehen Sie also im Grunde alle Middlewares,
‫die enthalten sind.
‫Denn Helm ist
‫tatsächlich eine Sammlung mehrerer Middlewares.
‫So steht es hier also eigentlich.
‫Es handelt sich also um eine Sammlung von
‫14 kleineren Middlewares und einige von ihnen
‫sind standardmäßig aktiv,
‫diese hier sind so markiert.
‫Wenn Sie also
‫interessiert sind, können Sie sich all diese anderen
‫ansehen und wenn Sie glauben, einige
‫davon zu benötigen, können Sie sie natürlich gezielt einschalten.
‫und es sagt dir auch hier
‫oben in der Dokumentation, wie das geht, okay.
‫Aber mir geht es nur mit
‫den Standardoptionen und so...
‫Das war eigentlich ganz einfach
‫und so kommen wir nun schnell zum nächsten Video.