- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Quali caratteri sono dannosi per mysql in input da un form html?
-
Cosa intendi per dannoso?
Per un inserimento in database?
Per una SQL-injection?
-
@marcocarrieri said:
Cosa intendi per dannoso?
Per un inserimento in database?
Per una SQL-injection?Per "inserimento" cosa intendi?
Cmq penso mi riferissi al SQL-injection...
-
Eh eh troppo bello.... "Penso mi riferissi" eh eh...
Per inserimento intendo, inserire in database nome, cognome.
Mentre per le injection intendo quelle procedure maligne usate per danneggiare un sito.
-
Si, comunque mi riferivo all'injection.
Quindi? Pensi che quei 2 caratteri possano essere dannosi o no?
In ogni caso quali possono essere i caratteri dannosi?
-
Dunque ho trovato queste discussioni.
http://www.giorgiotave.it/forum/php-mysql/85417-evitare-sql-injection-e-simili.html#post524427
Purtroppo le conosco solo di fama quindi dobbiamo aspettare pareri da esperti PHP e di sicurezza.
Saluti.
-
ok grazie
-
Di nulla...
Alla prossima.
-
Ciao Protone86,
dipende dalla query, per una query semplice del tipo:
SELECT * FROM tabella WHERE campo = '$stringa' ```È sufficiente fare mysql_real_escape_string. Se è una query di ricerca ci sono altri caratteri come il % e il _ che con mysql_real_escape_string non vengono rimossi, per cui biosgna fare controllli di tipo differente. Se ti aspetti di ricevere una variabile di tipo int, verificare prima con php se è di tipo numerico ed evitare di fare una query errata ti fa anche risparmiare risorse del server evitando di controllare inutilmente tutta la tabella oltre che a essere praticamente sicurissima. Il carattere \ permette di manomettere le query, con la funzione mysql_real_escape_string risolvi il problema.
-
Nel mio caso devo ritornare un messaggio di errore nel caso in cui l'utente inserisce i caratteri dannosi.
Sapresti indicarmi una funzione che cerca il carattere dentro la variabile?
Ho provato con diverse funzioni ma alcune si "inceppano" quando trovando l'apice...
-
Non sarebbe più corretto renderli innocui, per esempio se io voglio cercare in un forum una discussione avente nome paperon de' paperoni, il carattere ' potrebbe essere dannoso ma perchè non dovrei poter effettuare questa ricerca?
Ovviamente tutto dipende a seconda dell'uso che se ne fà, ma di norma la strada da te scelta non viene mai presa.
-
Comunque pensando a qualcosa di rapido potresti fare:
[php]if($var!=mysql_real_escape_string($var)) echo "Immessi dati non validi";[/php]
E' da verificare perché a quest'ora ho scritto la prima cosa che mi veniva in mente e potrebbe avere dei comportamenti che non ho considerato.
Comunque sono d'accordo con Thedarkita ed eviterei questa strada. Oltretutto è più elegante ritornare comunque dei risultati, eliminando o correggendo semplicemente i caratteri sgraditi.