scambio dati in sicurezza client server

Ragazzi ho un problema da due giorni.
In pratica è più una tempesta nel mio cervello ma sono due giorni che mi sto scervellando su alcune cosucce da poco conto.
Diciamo che ho un form di login, ma può essere qualsiasi altro form che dialoga in tempo reale (mettiamo tramite ajax) con un file che opera in remoto sul server.
Insomma una situazione classica ma vengo al punto, come risolvere alcuni parametri di sicurezza?
Esempietto classico, form di login, devo inserire account e password, il protocollo ajax interroga il database per dirmi se ho scritto bene l'account, si connette a verifica.php che apre una connessione al database e verifica se l'account pincopallo è registrato nel DB quindi manda una risposta positiva o negativa a seconda dei casi. Bene, fin qui tutto normale.
Ora il mio problema, cosa impedisce a chiunque di connettersi direttamente a verifica.php e fare una scansione remota di tutto il database alla ricerca di nomi di account registrati nel DB (è un esempio banale ma non è questo il punto ma la possibilità di impedirlo).
Le ho pensate tutte, ovvero la possibilità di non usare ajax ma di un controllo solo dopo aver premuto il tasto invio, caso classico, ma io voglio un controllo bidirezionale senza attesa, quindi ajax.
Una verifica tramite sessione, in effetti se creo una pagina in php sul mio server quando mi connetto all'altro server i dati di sessione devono essere diversi. Altra cosa è verificare l'host.
Ma se uso ajax non mi server controllare tutto questo perché mi basta creare una pagina in html e poi lanciarla nel browser, mi resta il problema della sessione, in html non dovrei poterla scatenare e un controllo su questo dato mi dovrebbe preservare, ma può essere la soluzione al mio caso?
C'avete capito qualche cosa di quanto ho scritto?

inviato 4 anni fa
Marco Grazia
X 0 X

Se ci tieni alla sicurezza allora la soluzione è semplice: mai far sapere all'utente se ha inserito correttamente lo username.

Strettamente collegato a questo discorso è il messaggio da mostrare in caso di errore nel login: "nome utente o password errati". Bisogna lasciare il dubbio... è lo username o la password?

risposto 4 anni fa
Gianni Tomasicchio
X 0 X

Capisco cosa intendi Gianni ma qui il problema è anche diverso, come faccio a impedire ad un utente smaliziato di leggersi il codice della pagina di login, vedere che punta ad un file chiamato che so: verifica.php e che tramite ajax passa una query string del tipo $u=utente anche solo per verificare se utente esiste già (caso di iscrizione nuovo utente) e quindi crearsi una sua routine di ricerca che punti al mio server/verifica.php?u=.... e ricorsivamente leggersi tutto il database?

Normalmente io da script questi controlli li faccio tramite file "nascosti" dentro directory irraggiungibili, ma usando ajax non è possibile puntare ad una directory messa come denied. Quindi come potrei fare a nascondere o meglio a impedire questo?

risposto 4 anni fa
Marco Grazia
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda