Jak zabránit volání REST API zvenčí? rubrika: Programování: Jiné

Ahoj,
chci se předem omluvit, pokud vám bude můj problém připadat jasný nebo podstatný, ale ačkoliv používání Rest api je denní hleba, pořád se mi nepodařilo pořádně vyřešit následující porblém:
Jde o to, jak ochrátnit api proti volání zvenčí. Api je však "veřejná" - o získání dat si může říci každý a api vrátí správný výsledek (i když toto není vyžadováno).
Problém nástává jak ošetřit např. vložení dat do DB, která beží pod api vrstvou. Jedná se tedy o nějaký POST request, kdy ho potřebuji omezit tak, aby ho mohla volat jen určitá app (client-side).
A v tomto bodě mě nenapadá jak to správně ošetřit. O to více se mi to komplikuje, že na client-side, která pracuje s api, nevyžaduji žádnou authentikaci uživatelů, aby mohli s app pracovat.
Když použiji nějaký authentikační token, který ovšem uložím do zdrojáku na client-side, každý si ho může přečíst a nebude to mít žádný efekt. Ať použiji jakékoliv jiné řešení na tomto principu, nikam to nevede. Kdokoliv přijde, můžete si přečíst potřebné údaje. (Minifikace kódu nic neřeší.)
Mohl by mi prosím někdo nastínit, jak se tyto situace řeší?

Takže zákazník vidí celý zdrojový kód aplikace, včetně přístupových klíčů a přesto by neměl mít možnost toto api volat ručně ?
Podle mě teoreticky neřešitelné. Je to stejná situace jako u DVD - když máš k dispozici soft který umí přečíst DVD (jsou v něm klíče i program) tak ho nakonec někdo zaanalyzuje jak to funguje, klíče získá a přečte DVD i z jiného programu.
Vzhledem k tomu, že je to na netu tak lze případného útočníka "docela prudit" třeba změnou definice API při každém requestu ... ale neprolomytelný to nikdy nebude.
Pro zobrazení všech 12 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře