/ 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
mysql_real_escape_string
Fra : Michael Foged


Dato : 29-09-04 11:11

Hej

Fra http://de2.php.net/manual/en/function.mysql-real-escape-string.php
Citat
You must always (with few exceptions) use this function to make your data
safe before sending a query to MySQL. If you have magic_quotes_gpc
enabled, and you are working with data from user input, you must first
stripslashes() your data. If your data are form other sources and you
have magic_quotes_runtime enabled, you also have to stripslashes() your
data. If you don't do so, you leave yourself open to SQL Injection
Attacks.


Jeg er i tvivl om betydningen af sidste sætning, begyndende med "If you
don't do so". Refereres der her til mysql_real_escape_string() eller
refereres der til stripslashes()?

Jeg kan ikke se hvad kan misbruges hvis jeg ikke bruger stripslashes(),
hvorimod tiøren faldt da jeg læste om mysql_real_escape_string()
(bortset fra at jeg ikke ka' se hvordan queryen ender som

<snip>$_POST['password']='' OR 1=1

Hvorfor vil $_POST['password'] være tom? Er det den enlige ' i det
indtastede password?

--
mvh
Michael Foged


 
 
Troels Arvin (29-09-2004)
Kommentar
Fra : Troels Arvin


Dato : 29-09-04 12:17

On Wed, 29 Sep 2004 12:10:44 +0200, Michael Foged wrote:

> Jeg er i tvivl om betydningen af sidste sætning, begyndende med "If you
> don't do so". Refereres der her til mysql_real_escape_string() eller
> refereres der til stripslashes()?

Jeg tror, det må henvise til mysql_real_escape_string().

> tiøren faldt da jeg læste om mysql_real_escape_string()
> (bortset fra at jeg ikke ka' se hvordan queryen ender som
>
> <snip>$_POST['password']='' OR 1=1
>
> Hvorfor vil $_POST['password'] være tom? Er det den enlige ' i det
> indtastede password?

Jeg synes også, at beskrivelsen på nævnte URL er buggy. En ubehagelig
værdi for $_POST['password'] kunne derimod være
' OR ''='

--
Greetings from Troels Arvin, Copenhagen, Denmark


Michael Foged (29-09-2004)
Kommentar
Fra : Michael Foged


Dato : 29-09-04 12:40

On Wed, 29 Sep 2004 13:16:44 +0200, Troels Arvin wrote:


> Jeg tror, det må henvise til mysql_real_escape_string().

Var også min umiddelbare tanke, men da jeg læste det 3dje gang blev jeg
i tvivl:/

> Jeg synes også, at beskrivelsen på nævnte URL er buggy. En ubehagelig
> værdi for $_POST['password'] kunne derimod være ' OR ''='

Tak for forklaringen, jeg tror den er feset ind.

Har jeg ret i at queryen vil se sådan ud: SELECT * FROM user WHERE
password='' OR ''='' ? (alt er enkelt-quotes)

--
mvh
Michael Foged

Troels Arvin (29-09-2004)
Kommentar
Fra : Troels Arvin


Dato : 29-09-04 12:44

On Wed, 29 Sep 2004 13:39:36 +0200, Michael Foged wrote:

> Har jeg ret i at queryen vil se sådan ud: SELECT * FROM user WHERE
> password='' OR ''='' ? (alt er enkelt-quotes)

Ja, bortset fra, at du har glemt

user='aidan' AND

i din WHERE-betingelse - men det er ligegyldigt for essensen.

--
Greetings from Troels Arvin, Copenhagen, Denmark


Michael Foged (29-09-2004)
Kommentar
Fra : Michael Foged


Dato : 29-09-04 12:59

On Wed, 29 Sep 2004 13:43:58 +0200, Troels Arvin wrote:

> On Wed, 29 Sep 2004 13:39:36 +0200, Michael Foged wrote:
>
>> Har jeg ret i at queryen vil se sådan ud: SELECT * FROM user WHERE
>> password='' OR ''='' ? (alt er enkelt-quotes)
>
> Ja,

Ok tak.

> bortset fra, at du har glemt user='aidan' AND
>
> i din WHERE-betingelse - men det er ligegyldigt for essensen.

ja jeg var lidt for doven, da jeg havde lukket min browser.

--
mvh
Michael Foged

Søg
Reklame
Statistik
Spørgsmål : 177517
Tips : 31968
Nyheder : 719565
Indlæg : 6408636
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste