Max Tietz Geschrieben 9. Januar 2024 Geschrieben 9. Januar 2024 Hallo zusammen, ich stehe gerade vor der Herausforderung, eine API in mein selbst entwickeltes Shopsystem zu integrieren, und möchte sicherstellen, dass die Sicherheitsaspekte angemessen berücksichtigt werden. Ein Ansatz, den ich in Betracht ziehe, ist das Verbergen von Admin-Funktionen hinter einem Login, indem beispielsweise der "Produkt hinzufügen"-Button nur für Admins sichtbar ist. Allerdings frage ich mich, ob das ausreichend ist oder ob zusätzliche Sicherheitsmaßnahmen auf der Endpointebene erforderlich sind. Darüber hinaus würde mich interessieren, wie man verhindern kann, dass Benutzer einfach Postman oder ähnliche Tools verwenden, um meine Endpoints abzufragen. Welche Maßnahmen sind hier sinnvoll, um unerlaubten Zugriff zu verhindern? Vielen Dank im Voraus für eure Erfahrungen und Ratschläge! VG, MAGGS
Funfare1337 Geschrieben 10. Januar 2024 Geschrieben 10. Januar 2024 Hallo, bei der API musst du die gleichen Sicherheitsmechanismen berücksichtigen wie bei Aufrufen mit dem Browser. Technisch gesehen ist das das Gleiche, nur statt HTML kommt halt JSON zurück (oder was auch immer). Alles was im Browser direkt passiert, ist nette Spielerei bzw. nur die die Benutzerfreundlichkeit gedacht. Es ist nett, wenn der Benutzer den Button "Produkt hinzufügen" Button nicht sieht, wenn er eh nichts damit anfangen kann. Wichtig ist aber, dass der Webrequest zum Produkt hinzufügen abgesichert ist bzw. mit Login/Berechtigung etc. überprüft wird. Postman wirst du nicht verhindern können. Es gibt ein paar Möglichkeiten um es schwerer zu machen (User-Agent überprüfen, CSRF etc), aber ob jetzt am Ende Firefox, Chrome, CURL oder Postman dahinter steht, wirst du nie absolut sicher feststellen können. Konzentriere dich darauf, die API bzw den Shop richtig abzusichern, dann kann es dir egal sein wie genau er aufgerufen wird. (Es macht ja auch keinen Unterschied, ob ein User jetzt Postman oder Chrome/Firefox etc benutzt, er kann so oder so das gleiche machen)
Max Tietz Geschrieben 10. Januar 2024 Autor Geschrieben 10. Januar 2024 vor 23 Minuten schrieb Funfare1337: Hallo, bei der API musst du die gleichen Sicherheitsmechanismen berücksichtigen wie bei Aufrufen mit dem Browser. Technisch gesehen ist das das Gleiche, nur statt HTML kommt halt JSON zurück (oder was auch immer). Alles was im Browser direkt passiert, ist nette Spielerei bzw. nur die die Benutzerfreundlichkeit gedacht. Es ist nett, wenn der Benutzer den Button "Produkt hinzufügen" Button nicht sieht, wenn er eh nichts damit anfangen kann. Wichtig ist aber, dass der Webrequest zum Produkt hinzufügen abgesichert ist bzw. mit Login/Berechtigung etc. überprüft wird. Postman wirst du nicht verhindern können. Es gibt ein paar Möglichkeiten um es schwerer zu machen (User-Agent überprüfen, CSRF etc), aber ob jetzt am Ende Firefox, Chrome, CURL oder Postman dahinter steht, wirst du nie absolut sicher feststellen können. Konzentriere dich darauf, die API bzw den Shop richtig abzusichern, dann kann es dir egal sein wie genau er aufgerufen wird. (Es macht ja auch keinen Unterschied, ob ein User jetzt Postman oder Chrome/Firefox etc benutzt, er kann so oder so das gleiche machen) @Funfare1337 vielen lieben dank für deine Tipps,!
arlecchin0 Geschrieben 13. Januar 2024 Geschrieben 13. Januar 2024 Mit C++? Was verwendest denn für libs/frameworks? Sagt dir OWASP was? https://owasp.org/www-project-top-ten/ https://owasp.org/www-project-api-security/
Gast Geschrieben 13. Januar 2024 Geschrieben 13. Januar 2024 (bearbeitet) Was du brauchst ist im Kern eine vernünftige Authentifizierung (und Autorisierung) an der API, z. B. token basiert via JWT oder Oauth. Wer keine Permissions hat, darf dann halt die API Endpunkte nicht nutzen und auch keine Produkte eben über diese hinzufügen. HTTPs sollte eh klar sein. Weitere Security Maßnahmen (OWASP, RateLimiting, ...) würde ich eher ganzheitlich betrachten, denn der Shop wird ja auch ohne API Angriffen ausgesetzt sein. Eventuell habt ihr schon eine WAF oder ähnliches mit OWASP Ruleset und könntet über ein API Gateway nachdenken, mit der du das Thema Authentifizierung+Autorisierung ebenfalls angehen könntest. Bearbeitet 13. Januar 2024 von bloodyberry
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden