Hogyan lehet "levédeni" az API kéréseket egy frontend alkalmazásban?
Van egy angular keretrendszerben megírt oldal amiben vannak API lekérdezések.
Maga az oldal ingyenes viszont az API előfizetős lenne.
Ez egy úgymond "látvány" oldal lenne amin megtudják nézni az érdeklődők, hogy azok az adatok amiket az API szolgáltatna az nekik megfelelő-e.
Viszont nem tudom hogyan oldjam meg, hogy amiket az angular küld API lekérdezéseket ne lehessen egyszerűen kiszedni a böngésző hálózati forgalmából vagy javascript fájljaiból és használják fel az ingyenes oldal API elérhetőségét.
Erre milyen megoldások léteznek?
Szerintem rossz a megközelítés. Ha fizetős az API, akkor gondolom valahogy hitelesíted a felhasználóját. Hitelesítés nélkül pedig nem működne.
Én a backendet JWT-s hitelesítéssel csinálnám meg (így érnék el az ügyfelek) az oldal pedig saját kulccsal működne.
Az XSS-nek is olvass utána.
Nem kell külön rendszer, simán védhető így.
#1 Sajnos nincs külön ingyenes és fizetős API.
#2 De ha az oldal saját API tokent kap azt is kitudják lesni.
Kicsit pontosítok a történeten.
Az ügyfélszolgálat heti szinten több olyan kérdést kap, hogy ezt meg azt az adatot tartalmazza-e az adatbázisunk.
Erre jött az ötlet valakitől, hogy azt a dashboardot ahol az ügyfélszolgálat és az előfizetők tudnak turkálni az adatbázisba azt tegyük nyilvánossá bárki által megtekinthetővé (mert egyébként nem tartalmaz semmilyen érzékeny adatot).
Ez a dashboard teljesen az API-ra lett megírva angular-ban amivel így nem volt gond, mert volt benne authentikáció és bejelentkezés után mindenki megkapta a saját API tokenjét amire előfizetett.
Viszont így, hogy ki kellett szedjem a bejelentkezést, az oldal már csak egy konkrét API tokennel dolgozik, amit én generáltam neki és ez a token kinézhető a js fájlokból és a hálózati forgalomból is.
Arra gondoltam, hogy az egész oldalt átírnám PHP-ba ahol backenden futnának ki az API lekérdezések amit szerver oldalon generálna bele a HTML-be és már a komplett HTML-t kapná meg a user így köze nem lenne a user-nek az API lekérdezésekhez. De ezt a megoldást utoljára választanám, mert az a dashboard eléggé angular függő.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!