Autor Zpráva
Prochy
Profil
Zdravím,

pro svoji webovou stránku bych si chtěl vytvořit desktopovou aplikaci pro jejich správu, plus případně do budoucna udělat aplikaci i pro android. Stránky jedou na PHP+MySQL, samozřejmě databáze má zakázáno připojení se z vnějšku. Napadlo mě tedy vytvořit si nějaké rozhraní, kde v deskt. aplikaci např. přes POST pošlu zašifrovaný MySQL dotaz pomocí privátního klíče + asi nějakou časovou platnost, na straně PHP dotaz dešifruji provedu SQL dotaz a zobrazím data v syrové podobě a ty následně zpracovat na desktopové aplikaci. Koukal jsem, že v PHP je funkce mcrypt_encrypt, která šifrování umí. Ale chci se hlavně zeptat, jestli je to dobrý způsob to takhle řešit nebo se to řeší jiným způsobem?

Děkuji
TomášK
Profil
Není to rozumný způsob.

1) Pokud se potřebuješ k databázi připojovat zvenku, povol připojování zvenku a neobcházej to skriptem napsaným v php, který předává SQL. Pokud to hosting neumožňuje, změň hosting.

2) Pokud bys to chtěl dělat skriptem, nešifruj dotaz, ale komunikaci. Nastav si ověřování klientského certifikátu na úrovni web serveru. Jinak budeš vynalézat kolo.

3) Budeš-li mít android aplikaci, která bude posílat dotazy, bude přístup do databáze muset být uložený/dostupný na zařízení s tím androidem. Android do detailů neznám, ale zřejmě ten přístup z toho půjde získat, tedy bude kdokoliv moci posílat jakékoliv dotazy do databáze.


Aplikace by měla mít možnost jen vykonávat příkazy, které potřebuje, nic víc. Smazat tabulku patrně potřebovat nebude. Buď tedy nechat připojení k databázi a detailně nastavit práva pro uživatele, který se tam připojuje, a nebo lépe udělat nějaké rozhraní, např. REST, které bude obsahovat jen ty funkce, které bude potřeba vykonávat.
Prochy
Profil
Děkuji za odpověď
TomášK:
Nastav si ověřování klientského certifikátu na úrovni web serveru
Tím myslíš pomocí https protokolu?

3) Budeš-li mít android aplikaci, která bude posílat dotazy, bude přístup do databáze muset být uložený/dostupný na zařízení s tím androidem. Android do detailů neznám, ale zřejmě ten přístup z toho půjde získat, tedy bude kdokoliv moci posílat jakékoliv dotazy do databáze.
Ano, to je nejspíš pravda, že by to šlo pravděpodobně pomocí disassemblingu zneužít, ale zrovna tahle pravděpodobnost je téměř zanedbatelná, takže tím bych se asi vůbec nezabýval. Aplikaci by používalo max 10 lidí.

Říkal jsem si, že nejspíš dostanu doporučení na vytvoření nějakého API na PHP straně. O tom RESTu slyším poprvé, zkusím to prozkoumat, co to je vůbec zač. Zatím děkuji. :)
Keeehi
Profil
Prochy:
Říkal jsem si, že nejspíš dostanu doporučení na vytvoření nějakého API na PHP straně.
To jsi čekal správně. REST je jen jeden z možných standardizovaných formátů, podle kterého API vytvořit.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: