Kom ihåg mig?
Home Menu

Menu


[PHP] Bästa sätt att undvika SQL injections?

 
Ämnesverktyg Visningsalternativ
Oläst 2008-03-02, 16:16 #11
hallis hallis är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2008
Inlägg: 31
hallis hallis är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2008
Inlägg: 31
Du behöver inte escape'a varje enskild POST-/GET-värde.
Citat:
$_POST = mysql_real_escape_string($_POST);
$_GET = mysql_real_escape_string($_GET);
hallis är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-03-02, 17:57 #12
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
mysql(i)_real_escape_string($varlabel,$link_identi fier) heter det,
där $link_identifier är en handler till en uppkoppling av databasen. Om man inte skickar med den så kan det bli fel.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-03-02, 23:09 #13
Lumax Lumax är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 610
Lumax Lumax är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 610
Citat:
Originally posted by Magnus_A@Mar 2 2008, 18:57
mysql(i)_real_escape_string($varlabel,$link_identi fier) heter det,
där $link_identifier är en handler till en uppkoppling av databasen. Om man inte skickar med den så kan det bli fel.
Enbart om man har flera kopplingar, då används den senaste.
Lumax är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-03-03, 04:58 #14
Adam N Adam N är inte uppkopplad
Medlem
 
Reg.datum: Feb 2008
Inlägg: 205
Adam N Adam N är inte uppkopplad
Medlem
 
Reg.datum: Feb 2008
Inlägg: 205
Citat:
Ursprungligen postat av Fredrik S
Citat:
Ursprungligen postat av Magnus_A
mysql(i)_real_escape_string($varlabel,$link_identi fier) heter det,
där $link_identifier är en handler till en uppkoppling av databasen. Om man inte skickar med den så kan det bli fel.
Enbart om man har flera kopplingar, då används den senaste.
Förstår inte på vilket sätt det kan bli fel. Exempel? :unsure:
Adam N är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-03-03, 10:35 #15
Lumax Lumax är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 610
Lumax Lumax är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 610
mysql(i)_real_escape_string() fungerar lite olika beroende på vilken teckentabell databasen använder. Vilka tecken som anses "problematiska" är alltså olika beroende på ISO-8859-1 och UTF-8 t.ex.
Så om du har två anslutningar mot olika databaser som kör olika charsets så kan du få situationer där SQL-injections är möjliga om du inte hänvisar till rätt databasanslutning när du kör mysql(i)_real_escape_string().

Detta är dock väldigt ovanligt eftersom det flesta enbart har en databas som scriptet jobbar mot, och i de fall man har flera databaser så har dessa i oftast samma charset.

Men visst, Magnus_A har en poäng. Det är skadar inte att ta med link identifier.
Lumax är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-03-03, 10:49 #16
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
Citat:
Ursprungligen postat av Adam N
Citat:
Originally posted by -Fredrik S@Mar 2 2008, 23:09
Citat:
Ursprungligen postat av Magnus_A
mysql(i)_real_escape_string($varlabel,$link_identi fier) heter det,
där $link_identifier är en handler till en uppkoppling av databasen. Om man inte skickar med den så kan det bli fel.
Enbart om man har flera kopplingar, då används den senaste.

Förstår inte på vilket sätt det kan bli fel. Exempel? :unsure:
Typiskt felmeddelande om man inte skriver rätt:

<?php
echo mysqli_real_escape_string('hej');
?>
Utan föregående uppkoppling så försöker php logga in utan lösenord, sällan en bra ide:
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Användare 'www-data'@'localhost' är ej berättigad att logga in (Använder lösen: NO) in /var/www/*** on line *

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /var/www/**** on line *

Och för mysqli:

Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in /var/www****
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)
 

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 05:33.

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