Um systematisch XSS-Fehler zu blockieren, behandelt Angular standardmäßig alle Werte als nicht vertrauenswürdig. Wenn ein Wert aus einer Vorlage über eine Eigenschaft, ein Attribut, einen Stil, eine Klassenbindung oder eine Interpolation in das DOM eingefügt wird, bereinigt Angular die nicht vertrauenswürdigen Werte und entfernt sie.In welchem Maße habe ich Bedenken hinsichtlich der Sicherheit (XSS) beim Umgang mit Benutzereingaben in Angular?
Winkelschablonen entsprechen ausführbarem Code: HTML, Attribute und Bindungsausdrücke (aber nicht die gebundenen Werte) in Vorlagen werden als sicher betrachtet. Das bedeutet, dass Anwendungen verhindern müssen, dass Werte, die ein Angreifer kontrollieren kann, jemals in den Quellcode einer Vorlage gelangen. Generieren Sie Vorlagenquellcode niemals durch Verketten von Benutzereingaben und Vorlagen. Um diese Sicherheitsanfälligkeiten zu vermeiden, verwenden Sie den Offline-Vorlagencompiler, der auch als Vorlageninjektion bezeichnet wird.
Dies ist, was Angular über XSS sagt. Es scheint jedoch, dass der erste Absatz dem zweiten widerspricht (bitte korrigiere mich, wenn ich falsch liege). Meine Frage ist also: Muss ich fliehen und meine Benutzereingaben bereinigen?
Ich werde es nicht als Antwort posten, aber das ist meine Meinung: Meiner Meinung nach, wenn Sie verkleinerten Code ohne die '.map' Dateien auf Produktion und einige Validierungen für Felder zum Beispiel' max' Werte, nur 'strings' oder' numbers' erlaubt (je nach Fall) und Sie senden diese Daten einfach an einen Backend-Dienst als JSON-String, Sie haben "Ihren Teil getan". Es liegt an den Backend-Frameworks und den Entwicklern, den Rest zu erledigen. Wenn jemand mehr hinzuzufügen hat und spezifische Beispiele, wie XSS zu verhindern, bitte teilen :) – DrNio