sql >> Databasteknik >  >> RDS >> Mysql

Hur tillåter jag endast åtkomst till min MySQL-databas från min iOS-app? (Använder webbapp som gateway till db)

Som nämnts tidigare är det ingen 100 % säkerhet möjlig. Men det finns flera lösningar som tillsammans ger stor trygghet.

Https

Som du påpekar är detta en viktig del, eftersom det förhindrar sniffning.

Sessioner

Använd sessioner och tillåt ingen begäran utan en giltig session (förutom den första, som måste autentisera appen).

Fingeravtryck

Kontrollera användaragenten och ställ in extra http-rubriker för att få ett fingeravtryck som är unikt för din app. ( Fortfarande kunde någon sniffa, men han behövde använda curl eller liknande. )

Obfuskera förfrågningar

Bygg din frågesträng och använd en hashfunktion. Servern måste implementera den omvända funktionen. ?43adbf764Fz istället för ?a=1&b=2

Kryptera

Detta går ett steg längre. Använd en delad hemlighet för att beräkna en hash. Upprepa samma sak på servern. Detta är redan stark säkerhet. För att gå sönder måste man bakåtkonstruera din app.

Använd unik delad hemlighet

Du säger att det är en app för iOS. Vid installationen genereras en unik token av iOS. Låt din app registrera denna token på din server. Så här har du en stark delad hemlighet som är unik för varje installation, och det skulle inte finnas något sätt att hacka din webbapp.




  1. Ska jag skicka min $mysqli-variabel till varje funktion?

  2. Är en SQL-injektion faktiskt möjlig genom att lägga till en andra fråga?

  3. Hur tar jag bort utökade ASCII-tecken från en sträng i T-SQL?

  4. Vad betyder PÅ [PRIMÄR]?