Domanda

Mi è stato detto in una domanda precedente che la mia domanda è soggetta a Iniezioni di SQL.

get_stats = mysql_query("SELECT * 
                               FROM visitors 
                              WHERE site='

Mi è stato detto in una domanda precedente che la mia domanda è soggetta a Iniezioni di SQL.

<*>

Quale sarebbe il modo più semplice per affrontare questo problema? E hai qualche lettura in più sul tema delle iniezioni? (qualcosa che potrei perdere su Google). Grazie!

GET[site]' AND date BETWEEN '$start_date' AND '$end_date' ");

Quale sarebbe il modo più semplice per affrontare questo problema? E hai qualche lettura in più sul tema delle iniezioni? (qualcosa che potrei perdere su Google). Grazie!

È stato utile?

Soluzione

Usa Dichiarazioni preparate .

Nella maggior parte dei casi, le istruzioni preparate svolgono il compito di combinare la query con i parametri, in modo sicuro.

Altri suggerimenti

$ _GET ['site'] è un valore che deriva direttamente dall'URL nel browser, il che significa che un utente potrebbe facilmente cambiare questo valore in qualsiasi cosa desideri, dovresti controllare / disinfettare quel valore, tutti i valori effettivamente prima di inviarlo a un database.

Qualcosa del genere sarebbe un inizio, potrebbe ancora usare più lavoro e ci sono molti modi per farlo, creerei una funzione / classe personalizzata per passare facilmente tutte le variabili in tutto il sito che può semplicemente cose ripetitive come questa

$site = mysql_real_escape_string(

$ _GET ['site'] è un valore che deriva direttamente dall'URL nel browser, il che significa che un utente potrebbe facilmente cambiare questo valore in qualsiasi cosa desideri, dovresti controllare / disinfettare quel valore, tutti i valori effettivamente prima di inviarlo a un database.

Qualcosa del genere sarebbe un inizio, potrebbe ancora usare più lavoro e ci sono molti modi per farlo, creerei una funzione / classe personalizzata per passare facilmente tutte le variabili in tutto il sito che può semplicemente cose ripetitive come questa <*>GET['site']); $start_date = mysql_real_escape_string($start_date); $end_date = mysql_real_escape_string($end_date); get_stats = mysql_query("SELECT * FROM visitors WHERE site='$site' AND date >= '$start_date' AND date <= '$end_date' ");

mysql_real_escape_string è il più semplice e la forma più semplice di sicurezza qui.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top