Kom ihåg mig?
Home Menu

Menu


Apostrof i MySQL

 
Ämnesverktyg Visningsalternativ
Oläst 2012-02-26, 00:42 #1
Dimme Dimme är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 397
Dimme Dimme är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 397
Om du använder mysql_real_escape_string($string) kom ihåg att anropa stripslashes($escapedString) när du hämta innehåll från databasen.

Annars kommer det du hämtar se ut så här:

Let\'s Eat istället för Let's Eat

Förresten, du borde läsa dig på MySQL injections, mysql_real_escape_string() löser en hel del men inte allt. Det går fortfarande att injecta en fråga som ser ut så här:

mysql_query("SELECT * FROM users WHERE name = $name");

Se till att alltid skriva dina frågor så här:

mysql_query("SELECT * FROM users WHERE name = '$name' ");

Och glöm inte escapa alla strängar och kasta om alla tal (T.ex. $id = (int)$_GET['id'];)
Dimme är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-02-26, 07:52 #2
dAEks avatar
dAEk dAEk är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2006
Inlägg: 678
dAEk dAEk är inte uppkopplad
Mycket flitig postare
dAEks avatar
 
Reg.datum: Dec 2006
Inlägg: 678
Eller så kör man med prepared statements. Det ser ut som vanliga Sql-statements men med variabler, om man ska förklara skillnaden i bara en mening. Fördelen är att man slipper tänka på Sql-injections (fnuttar och dylika tecken) samt att man får andra fördelar som t.ex. att frågorna kan kompileras, cachas och optimeras av databasmotorn.

För PHP verkar det som att det mest använda ramverket som fixar detta är PDO. Jag är ingen PHP-snubbe så det kan ha ploppat upp nyare alternativ den senaste tiden.
dAEk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-02-26, 09:23 #3
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Ursprungligen postat av Dimme Visa inlägg
Om du använder mysql_real_escape_string($string) kom ihåg att anropa stripslashes($escapedString) när du hämta innehåll från databasen.

Annars kommer det du hämtar se ut så här:

Let\'s Eat istället för Let's Eat
Nej, det stämmer inte alls. mysql_real_escape_string varken tar bort eller lägger till några tecken när strängen når databasen. Om du får den effekten så har du gjort någon annan formatering av texten eller så kör du med magic quotes vilket är smått antikt idag.
__________________
Full-stack developer, free for smaller assignments

Senast redigerad av tartareandesire den 2012-02-26 klockan 18:09
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-02-26, 16:00 #4
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av Dimme Visa inlägg
Om du använder mysql_real_escape_string($string) kom ihåg att anropa stripslashes($escapedString) när du hämta innehåll från databasen.

Annars kommer det du hämtar se ut så här:

Let\'s Eat istället för Let's Eat
Det stämmer, om du kör funktionen två gånger på samma sträng...
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-02-26, 20:59 #5
Dimme Dimme är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 397
Dimme Dimme är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 397
Ja sorry, så klart om man kör funktionen 2 ggr. My bad.
Dimme är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-02-27, 08:21 #6
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Ursprungligen postat av Dimme Visa inlägg
Ja sorry, så klart om man kör funktionen 2 ggr. My bad.
Varför skulle man göra det?
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-02-27, 12:11 #7
oskarh oskarh är inte uppkopplad
Flitig postare
 
Reg.datum: Sep 2010
Inlägg: 435
oskarh oskarh är inte uppkopplad
Flitig postare
 
Reg.datum: Sep 2010
Inlägg: 435
Citat:
Ursprungligen postat av tartareandesire Visa inlägg
Varför skulle man göra det?
Dubbel säkerhet!
oskarh ä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)
 

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 20:38.

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