Avatar billede k_jr Nybegynder
17. juni 2010 - 00:11 Der er 3 kommentarer

Korrekt escaping til database?

Halløj eksperter

Er der i princippet nogen forskel på disse to queries?

$title = $_POST['title'];
$q1 = "SELECT * FROM mytable WHERE title=`" . $title . "`";
$q2 = "SELECT * FROM mytable WHERE title='" . mysqli_real_escape_string($title) . "'";

Hvad hvis man putter en ` i nr 1?

Er de lige sikre?

Mvh
Avatar billede majbom Novice
17. juni 2010 - 07:41 #1
i $q2 escaper du jo de tegn der kan ødelægge din query, så ja der er forskel
Avatar billede dkfire Nybegynder
18. juni 2010 - 16:34 #2
Hvis du bruger mysqli, så lav det med prepared statement og parameter.
Så kan du slippe for at det der.

Og ja der er forskel på de to forespørgsler.
Den første kan bruges til at ødelægge hele din tabel/database af en hacker (sql-injection).
Den anden sikre dig mod sql-injection.
http://da.wikipedia.org/wiki/SQL_injection

Men husk ALTID at valider input fra brugeren!
Avatar billede majbom Novice
04. november 2010 - 14:08 #3
kom du videre?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB