Parametri php (nome utente, password) nel collegamento

0

Little Info : non sono uno sviluppatore web, sono un principiante di php e sql. Cercando di imparare nel mio tempo libero.

Stavo esaminando un sito Web su un server remoto e ho visto qualcosa di simile;

www.myurl.com/login.php nome utente = xxx &? Password = xxx

Per prima cosa, ho provato ad accedere alle mie credenziali e non ci sono stati problemi. Successivamente ho provato ad accedere con false credenziali per vedere cosa succede.

E sono riuscito a trovare il link sulla console.

È questo il modo giusto per la sicurezza? Potrei essere gravemente in errore ma voglio dire ora penso di sapere quali parametri ($ username e $ password) memorizzano in codice php.

Se ho ragione, può portare a un'iniezione sql? In caso affermativo, quali metodi possono essere utilizzati per impedirlo.

Aggiorna

Ho dimenticato di menzionare che il sito è HTTP

Qualsiasi vantaggio è apprezzato. Grazie per il tuo tempo.

    
posta Thalthanas 04.09.2018 - 08:42
fonte

2 risposte

1

i think now i know which parameters ($username and $password) they store in php code.

No, non lo fai, prendi in considerazione:

$asserted_user=$_GET['username'];

E pur sapendo questo, i dati sono effimeri. Inoltre, se qualcuno può raggiungere un luogo in cui può leggere il valore dell'argomento, può anche leggere il codice e potenzialmente fare molte altre cose.

Detto questo, suggerisce molta ingenuità da parte dello sviluppatore del sito.

YourCommonSense ha già menzionato che le password verranno esposte in chiaro nei registri del server e del proxy. Ma saranno anche esposti nella cronologia del browser. Questo è generalmente considerato un metodo molto cattivo. E tutto ciò che serve per risolvere è un passaggio da GET a POST in html.

can this lead to a sql-injection?

No.

FlorenceUguet dice che è un rischio del MITM. Non c'è nulla nella tua domanda che abbia qualche relazione con il MITM. L'utilizzo di GET o POST non ha alcun impatto sul MITM. Non ci hai detto se il sito stava usando HTTP o HTTPS. Gli attacchi MITM sono impediti dall'uso di TLS (HTTPS). Se il sito non utilizza HTTPS, ciò costituirebbe un grosso problema da parte del provider. Anche se la registrazione è gratuita e il valore del bene è insignificante, un fornitore ha il dovere di prendersi cura della propria clientela; e quello include proteggere le loro password. Un sacco di persone riutilizza la stessa password per diversi siti.

    
risposta data 04.09.2018 - 11:33
fonte
1

Non c'è nessuna minaccia diretta dall'invio delle credenziali nella stringa di query. Tecnicamente , per il server non importa se i dati del modulo vengono inviati nel corpo della richiesta o nella stringa di query.

Quindi significa che le tue ipotesi iniziali sono tutte sbagliate:

I think now i know which parameters they store in php code.

In primo luogo, tale conoscenza non ti darà alcun vantaggio.
In secondo luogo, puoi vedere nella console del browser TUTTI i parametri inviati al server, indipendentemente dal metodo utilizzato - i parametri del corpo della richiesta vengono visualizzati anche nella console

can this lead to a sql-injection?

Certo che no. L'iniezione SQL è correlata a SQL, non a HTTP di cui si sta parlando.

L'unica minaccia qui è la possibilità di esporre la password a terzi. Innanzitutto, verrà memorizzato nel registro di accesso del server. Oppure può essere memorizzato su qualche server proxy lungo il percorso (tuttavia, nel caso in cui il sito stia utilizzando HTTPS, non accadrà).

Quindi, alla fine, probabilmente non otterrai alcun vantaggio in questo caso, ma è comunque preferibile utilizzare il metodo POST.

    
risposta data 04.09.2018 - 10:05
fonte

Leggi altre domande sui tag