/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Hvordan kontrollerer jeg data til database~
Fra : Mogens Jensen


Dato : 03-01-11 00:06

Jeg skal flytte nogle bruger-inputdata ind i min MySQL database.

Nu er jeg nervøs for at brugerne skal taste data ind i systemet,
som ikke er tilladte eller ødelægger mine inserts og updates,
f. eks. paranteser, quotes, backslaches o.lign, som det vel
ikke er så smarte at have i sql kommandoerne.

Findes der en php rutine, hvormed man nemt kan afluse eller
kontrollere sine data for sådanne uheldige karakterer eller kender
nogle en nem og smart måde at kontrolle dataene på inden
de flyttes ind i databasen.

--
Mvh. Mogens Jensen


 
 
Birger Sørensen (03-01-2011)
Kommentar
Fra : Birger Sørensen


Dato : 03-01-11 00:26

Mogens Jensen forklarede den 03-01-2011:
> Jeg skal flytte nogle bruger-inputdata ind i min MySQL database.
>
> Nu er jeg nervøs for at brugerne skal taste data ind i systemet,
> som ikke er tilladte eller ødelægger mine inserts og updates,
> f. eks. paranteser, quotes, backslaches o.lign, som det vel
> ikke er så smarte at have i sql kommandoerne.
>
> Findes der en php rutine, hvormed man nemt kan afluse eller
> kontrollere sine data for sådanne uheldige karakterer eller kender
> nogle en nem og smart måde at kontrolle dataene på inden
> de flyttes ind i databasen.

Det rigtige er at bruge prameterized queries eller prepared statements
(forskellige navne for samme teknik).
http://dk2.php.net/manual/en/mysqli.overview.php
Det kræver en mysqli forbindelse, i stedet for den forældede mysql.

Til begge findes en mysql(i)_real_escape_string() funktion, som fjerner
de mest indlysende injektioner.
http://dk2.php.net/manual/en/function.mysql-real-escape-string.php
http://dk2.php.net/manual/en/mysqli.real-escape-string.php

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Leif Neland (03-01-2011)
Kommentar
Fra : Leif Neland


Dato : 03-01-11 11:44


"Birger Sørensen" <sdc@bbsorensen.com> skrev i en meddelelse
news:4d210986$0$23755$14726298@news.sunsite.dk...
> Mogens Jensen forklarede den 03-01-2011:
>> Jeg skal flytte nogle bruger-inputdata ind i min MySQL database.
>>
>> Nu er jeg nervøs for at brugerne skal taste data ind i systemet,
>> som ikke er tilladte eller ødelægger mine inserts og updates,
>> f. eks. paranteser, quotes, backslaches o.lign, som det vel
>> ikke er så smarte at have i sql kommandoerne.
>>
>> Findes der en php rutine, hvormed man nemt kan afluse eller
>> kontrollere sine data for sådanne uheldige karakterer eller kender
>> nogle en nem og smart måde at kontrolle dataene på inden
>> de flyttes ind i databasen.
>
> Det rigtige er at bruge prameterized queries eller prepared statements
> (forskellige navne for samme teknik).
> http://dk2.php.net/manual/en/mysqli.overview.php
> Det kræver en mysqli forbindelse, i stedet for den forældede mysql.
>
> Til begge findes en mysql(i)_real_escape_string() funktion, som fjerner de
> mest indlysende injektioner.
> http://dk2.php.net/manual/en/function.mysql-real-escape-string.php
> http://dk2.php.net/manual/en/mysqli.real-escape-string.php
>

For lige at tydeliggøre: prameterized queries eller prepared statements
betyder, at man ikke skal bekymre sig om at escape sine data.

Leif




Mogens Jensen (03-01-2011)
Kommentar
Fra : Mogens Jensen


Dato : 03-01-11 22:01


"Leif Neland" <leif@neland.dk> skrev i meddelelsen
news:4d21a878$0$36561$edfadb0f@dtext01.news.tele.dk...
>>
>> Det rigtige er at bruge prameterized queries eller prepared statements
>> (forskellige navne for samme teknik).
>> http://dk2.php.net/manual/en/mysqli.overview.php
>> Det kræver en mysqli forbindelse, i stedet for den forældede mysql.
>>
>> Til begge findes en mysql(i)_real_escape_string() funktion, som fjerner
>> de mest indlysende injektioner.
>> http://dk2.php.net/manual/en/function.mysql-real-escape-string.php
>> http://dk2.php.net/manual/en/mysqli.real-escape-string.php
>>
>
> For lige at tydeliggøre: prameterized queries eller prepared statements
> betyder, at man ikke skal bekymre sig om at escape sine data.
>


Tak for henvisningerne,
Så fik jeg også lejlighed til at kontrolleret alle databaser og så ændret
min
egen testbase til at benytte mysqli.

Jeg er begyndt at kikke på linkene og synes at der er et par svært
forståelige
funktioner. mysqli_real_escape_string og henvisningerne.

Da jeg er lidt tungnem så vender jeg måske tilbage i en ny tråd.

--
Mvh. Mogens Jensen


Søg
Reklame
Statistik
Spørgsmål : 177422
Tips : 31962
Nyheder : 719565
Indlæg : 6407883
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste