AngularJS - È possibile modificare una risposta da $ http.post a PHP?

0

Ho un% co_de angularJS% che invia nome utente / password a un file PHP che poi interroga il mio database per verificare il corretto accesso. Quindi restituisco un oggetto JSON a angularJS in uno dei seguenti formati:

{'success' : 'true', 'userFirstName' : [firstNameFromDatabaseQuery]}

o

{'success' : 'false'}

Una volta tornato in angularJS, controllo il valore di successo per determinare se le credenziali dell'utente erano valide e, se necessario, accedere l'utente.

Alla mia domanda - questa risposta JSON di PHP può essere modificata da un utente per contrassegnare il suo log in come riuscita, cambiando $http.post in 'true'?

Ritengo che valga la pena di menzionare che ho scelto in questo modo di usare le variabili di sessione PHP perché non funzionava bene nella mia applicazione angolare, e sembra anche essere un codice molto più pulito. Inoltre, questa è un'applicazione molto semplice. Non saranno coinvolte informazioni personali significative, come SSN o informazioni bancarie / relative alla carta di credito.

    
posta Tricky12 09.12.2015 - 15:45
fonte

1 risposta

1

Sì, il client può modificare il PHP per trasformare il valore del successo in vero. Tuttavia, dipende dalla logica dell'applicazione per determinare se ha conseguenze sulla sicurezza dell'applicazione. Se l'applicazione utilizza solo il valore success per caricare una nuova interfaccia utente, ma non può eseguire il pull dei dati (perché l'utente non ha un cookie di autenticazione, o qualche altro token di autorizzazione), allora non sarebbe realmente una preoccupazione.

Tuttavia, se richieste future (diciamo, cambia password), usa userFirstName come meccanismo di autenticazione (cioè, il back-end PHP vede il primo nome e si basa solo su quello) quindi l'applicazione potrebbe non solo essere spoofato cambiando success=true ma anche impostando userFirstName qualsiasi attaccante potrebbe diventare qualsiasi altra persona se conosce il suo nome.

Invece, restituiresti un cookie di autenticazione di qualche tipo. Questo molto probabilmente sarebbe un ID di sessione casuale che viene inviato con ogni richiesta futura. Il backend PHP convaliderebbe quindi l'ID di sessione e, da questo, sa chi è l'utente che sta facendo la richiesta.

Questo post ha alcune idee su come utilizzare l'autenticazione nelle applicazioni angularjs.

    
risposta data 09.12.2015 - 16:01
fonte

Leggi altre domande sui tag