0

Normalerweise wird ein csrf-Token vom Server generiert und dann an den Client gesendet. Wenn der Client ein Formular einreicht, wird das Token an den Server zurückgegeben, der dann überprüft wird.Umgang mit CSRF-Angriffen von AWS Lambda?

Wenn ich nur API Gateway und Lambda verwende, wie würde ich sicherstellen, dass alle POST/PUT-Anfragen gültig sind und vor csrf-Angriffen schützen? Es gibt nicht viel geschrieben über das Thema, das ich finden konnte, und ich bin mir nicht sicher, wie man ein generiertes csrf-Token persistiert, so dass alle Lambda-Funktionen trotzdem darauf zugreifen können.

Ist das etwas, das AWS bereits für mich erledigt, oder muss ich es speziell konfigurieren?

+0

vielleicht möchten Sie überprüfen, wie AWS WAF owasp Top 10 behandelt: https://aws.amazon.com/about-aws/whats-new/2017/07/use-aws-waf-to-mitigate -owasps-top-10-web-application-vulnerabilities /; Sehen Sie auch, wie das API-Gateway für CORS konfiguriert ist – Nicholas

Antwort

2

Während ich nicht getan haben (oder haben sogar versucht), dass selbst, 2 mögliche Lösungen können sein:

  • Die offensichtlichste: Persist die Daten in einem der Speicher von AWS angeboten
  • Je weniger Offensichtlicher: Verwenden Sie ein Token, das keine Persistenz benötigt. Zum Beispiel kann JWT (JSON-Web-Token) stateless verwendet werden, da alle Server (in Ihrem Fall: Lambda-Funktionen) nur ein gemeinsames Geheimnis kennen müssen, um clientseitige Token verifizieren zu können. Um zu verhindern, dass ein zuvor generiertes und verwendetes Token wiederverwendet wird (mit anderen Worten: Sicherstellen, dass ein Token nur einmal verwendet wird), können Sie der Token-Nutzlast, die das Formular beschreibt, Daten hinzufügen, z. B. mithilfe einer Entitätskennung plus Versionsnummer Fügen Sie der Token-Nutzlast einen Ablaufzeitstempel hinzu - was auch immer zu Ihrem Anwendungsfall passt.