PS_CS4 Skrevet 14. januar 2009 Del Skrevet 14. januar 2009 Hvordan kan jeg forhindre mysql-injection i URL ? Uansett hvordan URL'en ser ut. Lenke til kommentar
Intramin Skrevet 14. januar 2009 Del Skrevet 14. januar 2009 mysql_real_escape_string() Lenke til kommentar
OIS Skrevet 15. januar 2009 Del Skrevet 15. januar 2009 Hvordan kan jeg forhindre mysql-injection i URL ? Uansett hvordan URL'en ser ut. Dette har ingenting med URL å gjøre. Det spørs på kordan du validerer parametre for spørringen. Det beste er å bruke prepared statements med PDO. Skal du bruke mysql funksjonene kan du bruke mysql_real_escape_string på de fleste tekst parametre, men du kan også validere tall som tall, epost som epost, tekststreng som a-åA-Å, personnummer som personnummer, etc. Sjekk link i min signatur. Lenke til kommentar
PS_CS4 Skrevet 15. januar 2009 Forfatter Del Skrevet 15. januar 2009 Hvordan kan jeg forhindre mysql-injection i URL ? Uansett hvordan URL'en ser ut. Dette har ingenting med URL å gjøre. Det spørs på kordan du validerer parametre for spørringen. Det beste er å bruke prepared statements med PDO. Skal du bruke mysql funksjonene kan du bruke mysql_real_escape_string på de fleste tekst parametre, men du kan også validere tall som tall, epost som epost, tekststreng som a-åA-Å, personnummer som personnummer, etc. Sjekk link i min signatur. PDO, fungerer ikke på one.com? Kommer kun at execute funksjonene ikke er definert:s Lenke til kommentar
AlecTBM Skrevet 15. januar 2009 Del Skrevet 15. januar 2009 Hva skriver du? Kanskje du har glemt noen linjer Lenke til kommentar
PS_CS4 Skrevet 15. januar 2009 Forfatter Del Skrevet 15. januar 2009 (endret) mysql_real_escape_string() Hvordan? mysql_real_escape_string($_GET); ?? mysql_real_escape_string($_REQUEST); ?? Ingen av dem fungerer.. Hva skriver du? Skal $dbh inneholde noe? Endret 15. januar 2009 av PS_CS4 Lenke til kommentar
AlecTBM Skrevet 15. januar 2009 Del Skrevet 15. januar 2009 Leser du linker? http://no.php.net/manual/en/function.mysql...cape-string.php Og HVA er koden du tester? Lenke til kommentar
Martin A. Skrevet 15. januar 2009 Del Skrevet 15. januar 2009 mysql_real_escape_string() Hvordan? mysql_real_escape_string($_GET); ?? mysql_real_escape_string($_REQUEST); ?? Ingen av dem fungerer.. forach( $_GET as $k => $v ) { $k = mysql_real_escpae_string( $k ); $v = mysql_real_escpae_string( $v ); $_GET[ $k ] = $v; } forach( $_POST as $k => $v ) { $k = mysql_real_escpae_string( $k ); $v = mysql_real_escpae_string( $v ); $_POST[ $k ] = $v; } Lenke til kommentar
PS_CS4 Skrevet 16. januar 2009 Forfatter Del Skrevet 16. januar 2009 (endret) foreach($_GET as $k => $v) { $k = mysql_real_escape_string( $k ); $v = mysql_real_escape_string( $v ); $_GET[ $k ] = $v; } foreach( $_POST as $k => $v ) { $k = mysql_real_escape_string( $k ); $v = mysql_real_escape_string( $v ); $_POST[ $k ] = $v; } Fungerer ikke.. Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'mafiasos.net'@'srv125.one.com' (using password: NO) in /customers/mafiasos.net/mafiasos.net/httpd.www/inc/config/config.php on line 9 Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /customers/mafiasos.net/mafiasos.net/httpd.www/inc/config/config.php on line 9 Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'mafiasos.net'@'srv125.one.com' (using password: NO) in /customers/mafiasos.net/mafiasos.net/httpd.www/inc/config/config.php on line 10 Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /customers/mafiasos.net/mafiasos.net/httpd.www/inc/config/config.php on line 10 Endret 20. februar 2009 av cyclo Fjernet unødvendig quote Lenke til kommentar
AlecTBM Skrevet 16. januar 2009 Del Skrevet 16. januar 2009 Skulle tru at du ikke leser feilmeldinger Access denied for user 'mafiasos.net'@'srv125.one.com' (using password: NO) Dette betyr at du ikke får tilgang til mysql databasen Kanskje koble til først? Lenke til kommentar
Wackamole Skrevet 16. januar 2009 Del Skrevet 16. januar 2009 (endret) kan vi kanskje få se koden? <?php // Connect $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password') OR die(mysql_error()); // Query $query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'", mysql_real_escape_string($user), mysql_real_escape_string($password)); ?> L2læs på manualn! EDIT: BTW, One.com krever at du har passord på mysql tilkoblinga nokka som du tydeligvis ikkje har fått me dæ Access denied for user 'mafiasos.net'@'srv125.one.com' (using password: NO) Endret 20. februar 2009 av cyclo Lenke til kommentar
PS_CS4 Skrevet 16. januar 2009 Forfatter Del Skrevet 16. januar 2009 /* database variabler */ $host = "localhost"; // 192.168.1.3 $bruker_sql = "***"; $pass_sql = "***"; $database = "***"; /* lager en klasse for å koble til */ class KobleTil { function Server($host,$bruker_sql,$pass_sql) { mysql_connect("$host", "$bruker_sql", "$pass_sql"); } function Base($database) { mysql_select_db("$database"); } } /* lager ny klasse */ $KobleTil = new KobleTil(); /* oppretter tilkobling */ $KobleTil->Server($host,$bruker_sql,$pass_sql); $KobleTil->Base($database); Lenke til kommentar
Wackamole Skrevet 16. januar 2009 Del Skrevet 16. januar 2009 Se over eksempelet mitt, og hva er det du skal beskytte mot SQL injection? Lenke til kommentar
PS_CS4 Skrevet 16. januar 2009 Forfatter Del Skrevet 16. januar 2009 Se over eksempelet mitt, og hva er det du skal beskytte mot SQL injection? Hvordan kan jeg forhindre mysql-injection i URL ? Uansett hvordan URL'en ser ut. Lenke til kommentar
AlecTBM Skrevet 16. januar 2009 Del Skrevet 16. januar 2009 Poster eksemplet til famen en gang til <?php // Connect $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password') OR die(mysql_error()); // Query [b]$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'", mysql_real_escape_string($user), mysql_real_escape_string($password));[/b] ?> Lenke til kommentar
PS_CS4 Skrevet 16. januar 2009 Forfatter Del Skrevet 16. januar 2009 (endret) Poster eksemplet til famen en gang til Jeg greier fint og koble til databasen, og jeg spør ikke om hvordan jeg bruker sprintf. Jeg spør om: HVORDAN KAN JEG HINDRE MYSQL-INJECTION I URLEN ?? ($_get) Endret 16. januar 2009 av PS_CS4 Lenke til kommentar
fezken Skrevet 16. januar 2009 Del Skrevet 16. januar 2009 Det er jo det de skriver . Dersom du bruker mysql_real_escape_string på input som skal til databasen, forhindrer du jo mysql injection. Du kan også ta i bruk den velkjente quote_smart funksjonen: function quote_smart($value){ // Stripslashes if (get_magic_quotes_gpc() && !is_null($value) ) { $value = stripslashes($value); } //Change decimal values from , to . if applicable if( is_numeric($value) && strpos($value,',') !== false ){ $value = str_replace(',','.',$value); } if( is_null($value) ){ $value = 'NULL'; } // Quote if not integer or null elseif (!is_numeric($value)) { $value = "'" . mysql_real_escape_string($value) . "'"; } return $value; } Lykke til Lenke til kommentar
OIS Skrevet 16. januar 2009 Del Skrevet 16. januar 2009 Poster eksemplet til famen en gang til Jeg greier fint og koble til databasen, og jeg spør ikke om hvordan jeg bruker sprintf. Jeg spør om: HVORDAN KAN JEG HINDRE MYSQL-INJECTION I URLEN ?? ($_get) Det er umulig å forhindre sql-injection i URLen. Dette skal forhindres i sql spørringen, der du escaper/filtrerer alle parametre skikkelig. Lenke til kommentar
PS_CS4 Skrevet 16. januar 2009 Forfatter Del Skrevet 16. januar 2009 Poster eksemplet til famen en gang til Jeg greier fint og koble til databasen, og jeg spør ikke om hvordan jeg bruker sprintf. Jeg spør om: HVORDAN KAN JEG HINDRE MYSQL-INJECTION I URLEN ?? ($_get) Det er umulig å forhindre sql-injection i URLen. Dette skal forhindres i sql spørringen, der du escaper/filtrerer alle parametre skikkelig. Man kan kjøre en spørring, rett fra URL'en ? Lenke til kommentar
AlecTBM Skrevet 16. januar 2009 Del Skrevet 16. januar 2009 Nei, eller på sett og vis, ikke noe anbefalt og jeg ser virkelig ikke hvorfor. blir jo bare å kjøre $_GET rett inn i en mysql_query Men igjen er ikke noe vits i det, bedre med å sende verdier Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå