Quanto è sicuro il mio metodo?

0

Voglio selezionare i dati da un MySql database su un dispositivo iphone. Il metodo che sembro è il più semplice è quello di connettersi a un file php con argomenti GET e quindi restituirlo come stringa.

Ora mi sto chiedendo quali sono le probabilità che qualcuno trovi la IP-address e il file e la utilizzi da un luogo diverso dall'app.

    
posta Arbitur 17.06.2014 - 14:15
fonte

3 risposte

3

Le probabilità sono al 100%. È facile per chiunque guardare il tuo codice e trovare l'URL al suo interno, o per osservare il traffico di rete e dedurre come vengono eseguite le tue richieste.

Quando pensi alla sicurezza della tua app, supponi che questa informazione sia pubblica e vada da lì.

Se vuoi rallentare il lavoro dell'aggressore (ma tieni a mente che non sarai in grado di impedirlo!), puoi considerare l'offuscamento e pensare a crittografare il tuo traffico HTTP (assicurati di verificare il certificato in la tua applicazione!).

    
risposta data 17.06.2014 - 14:26
fonte
1

La tua idea non ha nulla a che fare con la sicurezza. Nella migliore delle ipotesi, è un'oscurità.

Uno script PHP accessibile a tutti è pubblico per definizione. Puoi provare a nasconderlo un po 'in modo che il visitatore medio non lo trovi immediatamente. Ma né gli indirizzi IP, né i nomi dei file sono dati segreti, quindi chiunque con un po 'di motivazione può trovarli prima o poi. E una volta che l'URL è noto, le persone sono libere di condividerlo.

Se vuoi assicurarti che solo tu possa accedere allo script, hai bisogno di autenticazione . Esistono molte varianti che vanno da una semplice password a un'autenticazione sofisticata basata su certificati.

Nel tuo caso, stai ovviamente trattando con dati di basso valore. L'autenticazione HTTP di base potrebbe essere la scelta giusta. E naturalmente puoi implementare il tuo controllo password.

    
risposta data 17.06.2014 - 14:50
fonte
0

No, no, no, no, no e no. Questo è completamente, completamente al 100% insicuro. Non c'è ripararlo. È rotto. Non solo l'IP del server SQL sarà facilmente rilevabile (e non è possibile evitare che venga scoperto in modo relativamente banale dal momento che tutte le informazioni necessarie per connettersi sono contenute nell'applicazione stessa), ma ti lascia completamente aperto alle iniezioni e alla manipolazione lungo la strada pure.

Il modo corretto per gestire qualcosa di simile è configurare un servizio Web pubblico che verrà eseguito in cima all'istanza del server SQL e campo richieste valide per l'applicazione. Il servizio Web si prenderà cura della sterilizzazione e della convalida di quell'input è un caso di utilizzo legittimo che potrebbe provenire dall'applicazione, generare la richiesta SQL appropriata o, preferibilmente, memorizzata della procedura e quindi restituire i dati all'applicazione.

Con qualsiasi sistema di tipo server, non dovresti MAI fidarti del client. Potrebbero esserci eccezioni molto rare se si dispone di un controllo rigoroso sul client, ma anche in questo caso dovrebbe essere evitato se possibile.

    
risposta data 17.06.2014 - 15:18
fonte

Leggi altre domande sui tag