/ 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
' ind i sql database.
Fra : Christian Hjort


Dato : 09-10-04 13:32

hej NG

Jeg er ved at lave et community!

Med dette community kan hver bruger opdatere deres profil, men
hvis de forsøger at sætte en ' ind (apostrof) kommer der en sql
fejl. Dette kan ikke løses med en str_replace da der ikke må
komme html ind i databasen, for det vil jo se lidt underligt ud
næste gang de skal opdatere deres profil tekst med en masse html.

Så spørgsmålet er hvilken function der gør du godt kan smide en '
ind i databasen? Har denne kode:

mysql_query("UPDATE `users` SET `password` = '$password', `alder`
= '$alder',`r_navn` = '$r_navn', `p_by` = '$p_by', `job` =
'$job', `status` = '$status', `email` = '$email', `hjemmeside` =
'$hjemmeside', `besked` = '$besked' WHERE `id` = '$id' LIMIT 1
;") or die(mysql_error());
header("location: edit.php?bruger=$bruger&edit=on");


På forhånd tak.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Anders K. Madsen (09-10-2004)
Kommentar
Fra : Anders K. Madsen


Dato : 09-10-04 15:02



Christian Hjort (09-10-2004)
Kommentar
Fra : Christian Hjort


Dato : 09-10-04 15:13

Anders K. Madsen wrote in dk.edb.internet.webdesign.serverside.php:
> On 09 Oct 2004 12:32:03 GMT
> Christian Hjort <SphinX@mail-online.dk> wrote:
>
> > Så spørgsmålet er hvilken function der gør du godt kan smide en '
> > ind i databasen?
>
> http://php.net/addslashes og http://php.net/stripslashes
> Ved dog ikke om disse er helt sikre...

har forsøgt med addslashes, men uden held. Så havde håbet på en af de
kloge hoveder herinde ville vise _hvor_ det skal sættes ind.
>
> Men, ud over at det du har kørende nu genererer en SQL fejl, så har du
> tilsyneladende et endnu større problem m.h.t. SQL-injects. Jeg ville
nok
> koncentrere mig om konsekvensen af at en ' kan generere en SQL-fejl,
end
> hvorvidt brugere kan indsætte en ' eller ej. (De to ting hænger
> selvfølgelig næsten uløseligt sammen, men jeg håber du forstår.)

Hvad er en SQL Injection?
>


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Anders K. Madsen (09-10-2004)
Kommentar
Fra : Anders K. Madsen


Dato : 09-10-04 15:36



Christian Hjort (09-10-2004)
Kommentar
Fra : Christian Hjort


Dato : 09-10-04 15:44

Anders K. Madsen wrote in dk.edb.internet.webdesign.serverside.php:
> On 09 Oct 2004 14:13:15 GMT
> Christian Hjort <SphinX@mail-online.dk> wrote:
>
> No offense, men det lyder til at du kunne have godt af, at læse lidt
> mere på din basic PHP inden du kaster dig ud i sådanne projekter.

Må vidst have overset den funktion. SKulle ikke mene jeg er helt grøn i
php. Du kan følge projektet her:

http://www.stormdk.frac.dk/community/bruger/index.php

Hver bid kodet af mig, begriber ikke nu hvordan jeg kan have overset
elelr ikke stødt på SQL injection warnings.
>
> Jeg kan anbefale http://webcafe.dk til det formål.

Har læst sitet igennem. Og mener jeg kan lave det de tilbyder på
Webcafe.dk ;)
>
> > Hvad er en SQL Injection?
>
> http://www.google.com/search?q=sql+inject+php
>



--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

kim isaksen (10-10-2004)
Kommentar
Fra : kim isaksen


Dato : 10-10-04 11:07

Christian Hjort wrote:

> Anders K. Madsen wrote in dk.edb.internet.webdesign.serverside.php:
>
>>On 09 Oct 2004 14:13:15 GMT
>>Christian Hjort <SphinX@mail-online.dk> wrote:
>>
>>No offense, men det lyder til at du kunne have godt af, at læse lidt
>>mere på din basic PHP inden du kaster dig ud i sådanne projekter.
>
>
> Må vidst have overset den funktion. SKulle ikke mene jeg er helt grøn i
> php. Du kan følge projektet her:
>

Du skal ihvertfald nok slå directory browsing fra :)

fra header.inc..

<?php

if ($_COOKIE['bruger'] && $_COOKIE['pass']) {
print"
<div class=\"headbox\">Bruger Menu</div>
<a class=\"leftmenu\"
href=\"../bruger/tagwall.php?tilbruger=$bruger&amp;do=read\">Min
Gæstebog</a>
<a class=\"leftmenu\" href=\"../bruger/logud.php\">Log-ud</a>
<a class=\"leftmenu\" href=\"../bruger/edit.php?bruger=$bruger\">Redigér
Profil</a>
<a class=\"leftmenu\"
href=\"../bruger/se_bruger.php?visbruger=$bruger\">Min Profil</a>
<a class=\"leftmenu\"
href=\"../bruger/tagwallslet.php?visbruger=$bruger\">Administrer
Gæstebog</a>

<br />
";

}

$result = mysql_query("SELECT * from users WHERE brugernavn =
'$bruger'") or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
if($row['b_status'] == "coadmin"){
print"
<div class=\"headbox\">
Co-Admin Menu</div>

<a class=\"leftmenu\" href=\"../bruger/sletbruger.php\">Slet Bruger(ere)</a>
";
}
}

?>

/iM

Anders K. Madsen (09-10-2004)
Kommentar
Fra : Anders K. Madsen


Dato : 09-10-04 23:11



Christian Hjort (10-10-2004)
Kommentar
Fra : Christian Hjort


Dato : 10-10-04 09:19

Anders K. Madsen wrote in dk.edb.internet.webdesign.serverside.php:
> On 09 Oct 2004 14:13:15 GMT
> Christian Hjort <SphinX@mail-online.dk> wrote:
>
> > Hvad er en SQL Injection?
>
> Det er f.eks. når du logger ind på dit site med:
> bruger:   "findes_ikke"
> pass:   "ajidfoa' OR 'laks' = 'laks"
> (uden dobbelte anførselstegn omkring).

Jeg har selv forsøgt mig at logge ind med din metode men uden held?
>
> Men, man kan gøre meget værre ting end bare at logge ind med en bruger
> der ikke findes...
> Desuden vil jeg anbefale dig at bruge sessions i stedet for cookies, samt at undgå urls som f.eks.:
> http://www.stormdk.frac.dk/community/bruger/tagwallslet.php?visbruger=webmaster,
> men basere dem på session data. Så slipper du for at man kan se andre
> folks gæstebøger.

Dette kan jeg løse med at ændre sql sætningen, så den nupper brugernavnet fra COOKIEN. MEn tak fordi
du gjorde mig opmærksom på dette problem.

Dette community kræver dog ikke det højeste niveau af sikkerhed derfor mener jeg godt jeg kan bruge
cookies her. Prøv f.eks. at bruge "redigér profil" funktionen det er brugt med cookie metoden i SQL
sætningen burde også være muligt med administrer gæstebog funktionen, har bare ikke lige tænkt mig om.
>
> Mvh. Madsen
>
> --
> Anders K. Madsen --- http://lillesvin.net
> "Live free or don't."
>


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Anders K. Madsen (10-10-2004)
Kommentar
Fra : Anders K. Madsen


Dato : 10-10-04 15:05



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

Månedens bedste
Årets bedste
Sidste års bedste