Kom ihåg mig?

Sql injection

Ämnesverktyg Visningsalternativ
Oläst 2009-12-28, 20:10 #1
emil123s avatar
emil123 emil123 är inte uppkopplad
Medlem
 
Reg.datum: Aug 2009
Inlägg: 57
emil123 emil123 är inte uppkopplad
Medlem
emil123s avatar
 
Reg.datum: Aug 2009
Inlägg: 57
Standard Sql injection

Hej!
Jag använder mysql real escape string för att skydda min sida av sql injection. Men mysql real escape fungerar bara när man hämtar information från databasen.(t.ex. SELECT FROM USER....).
När man skriver i databasen så fungerar inte mysql real escape string. T.ex. när man registrerar sig, skriver i gästbok osv. Om jag skriver ett sql injections kommand i gästbok så sparas den i databasen. Jag menar om jag skrev ' OR ''=' så sparas den i databasen som den är. Men om mysql real escape string fungerade så skulle ju denna vara så här: \' OR \'1\'=\'1. Är mysql real escape string bara för att skydda sig när man hämtar information från databasen?
Tacksam för svar.
emil123 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-12-28, 20:13 #2
najks avatar
najk najk är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2005
Inlägg: 1 224
najk najk är inte uppkopplad
Har WN som tidsfördriv
najks avatar
 
Reg.datum: Oct 2005
Inlägg: 1 224
Det funkar i alla typer av frågor, oavsett om du gör en insert eller update, alltså inte bara vid en select. Du har nog något fel i din kod om du upplever problem. Du kan inte dela med dig av lite källkod så ser någon här snart felet..
najk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-12-28, 20:16 #3
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
Citat:
Ursprungligen postat av emil123 Visa inlägg
...
Jag menar om jag skrev ' OR ''=' så sparas den i databasen som den är.
...
Det är ju exakt det som man vill åstadkomma, utan mysql_real_escape hade ju den delen av strängen inte tolkats som något som skulle sparas i databasen utan som en del av själva frågan.
andi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-12-28, 21:03 #4
ChristianCarlsson ChristianCarlsson är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 58
ChristianCarlsson ChristianCarlsson är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 58
Använd mysql_real_escape vid select/update/insert till databasen, och när du skriver ut information from databasen använd tex htmlspecialchars.

Eller har jag missuppfattat din fråga?

Senast redigerad av ChristianCarlsson den 2009-12-28 klockan 21:11
ChristianCarlsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-12-30, 02:02 #5
emil123s avatar
emil123 emil123 är inte uppkopplad
Medlem
 
Reg.datum: Aug 2009
Inlägg: 57
emil123 emil123 är inte uppkopplad
Medlem
emil123s avatar
 
Reg.datum: Aug 2009
Inlägg: 57
Thumbs up Tackar alla

Citat:
Ursprungligen postat av najk Visa inlägg
Det funkar i alla typer av frågor, oavsett om du gör en insert eller update, alltså inte bara vid en select. Du har nog något fel i din kod om du upplever problem. Du kan inte dela med dig av lite källkod så ser någon här snart felet..
Som Andi sa så skulle denna delen inte tolkats utan mysql real escape string. Så tackar.

Citat:
Ursprungligen postat av andi Visa inlägg
Det är ju exakt det som man vill åstadkomma, utan mysql_real_escape hade ju den delen av strängen inte tolkats som något som skulle sparas i databasen utan som en del av själva frågan.
Tog bort mysql real escape string och la en sql injecton kommand(' OR ''=') och den blev en sifra i databasen. Nu förstod jag att utan mysql real escape string den delen skulle inte tolkats. Tack.



Citat:
Ursprungligen postat av ChristianCarlsson Visa inlägg
Använd mysql_real_escape vid select/update/insert till databasen, och när du skriver ut information from databasen använd tex htmlspecialchars.

Eller har jag missuppfattat din fråga?
Du har förståt rätt. Tack för tipset om htmlspecialchars. Ska prova den.
emil123 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-12-30, 02:24 #6
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
använder htmlspecialchars varje gång jag tar ut ur databasen! om du vill bli helt säker så använd den... här är hur du lir "skyddad"

PHP-kod:
 $string 'hej på dej! <a href="minhemsida.se">minhemsida</a>';
$string htmlspecialchars($stringENT_NOQUOTES'UTF-8'); 
den kommer skriva ut: hej på dej! <a href="minhemsida.se">minhemsida</a> och ignorera att skapa länken...
youheardit är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-12-30, 23:23 #7
emil123s avatar
emil123 emil123 är inte uppkopplad
Medlem
 
Reg.datum: Aug 2009
Inlägg: 57
emil123 emil123 är inte uppkopplad
Medlem
emil123s avatar
 
Reg.datum: Aug 2009
Inlägg: 57
Citat:
Ursprungligen postat av youheardit Visa inlägg
använder htmlspecialchars varje gång jag tar ut ur databasen! om du vill bli helt säker så använd den... här är hur du lir "skyddad"

PHP-kod:
 $string 'hej på dej! <a href="minhemsida.se">minhemsida</a>';
$string htmlspecialchars($stringENT_NOQUOTES'UTF-8'); 
den kommer skriva ut: hej på dej! <a href="minhemsida.se">minhemsida</a> och ignorera att skapa länken...
Tack för exempel. Vad är skilnad mellan htmlspecialchars och htmlentities ? De är ju lika.
emil123 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-12-30, 23:33 #8
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
Citat:
Ursprungligen postat av emil123 Visa inlägg
Tack för exempel. Vad är skilnad mellan htmlspecialchars och htmlentities ? De är ju lika.
Har inte kollat på det, men när jag byggde ett kommentar-system så vart jag tvungen att använda mig av just htmlspecialchars, fast innan jag hittade htmlspecialchar så testade jag alla andra möjliga, är nästan 100% på att jag testade htmlentities och alla utom just htmlspecialchars gick utan resultat. kan oxå vara ett programmeringsfel av mig so mgjort att htmlentities inte funkade...
youheardit är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-12-31, 18:05 #9
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
Citat:
Ursprungligen postat av emil123 Visa inlägg
Tack för exempel. Vad är skilnad mellan htmlspecialchars och htmlentities ? De är ju lika.
http://se2.php.net/manual/en/function.htmlentities.php

Där står följande: This function is identical to htmlspecialchars() in all ways, except with htmlentities(), all characters which have HTML character entity equivalents are translated into these entities.
etanders är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-12-31, 19:07 #10
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Htmlspecialchars översätter endast
Citat:
& " ' < >
Räcker för att göra outputen säker för publicering.
Htmlentities översätter även andra tecken vilket kan ha sin fördelar i andra sammanhang.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 01:52.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017