PS_CS4 Skrevet 14. januar 2009 Skrevet 14. januar 2009 Hvordan kan jeg forhindre mysql-injection i URL ? Uansett hvordan URL'en ser ut.
OIS Skrevet 15. januar 2009 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.
PS_CS4 Skrevet 15. januar 2009 Forfatter 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
AlecTBM Skrevet 15. januar 2009 Skrevet 15. januar 2009 Hva skriver du? Kanskje du har glemt noen linjer
PS_CS4 Skrevet 15. januar 2009 Forfatter 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
AlecTBM Skrevet 15. januar 2009 Skrevet 15. januar 2009 Leser du linker? http://no.php.net/manual/en/function.mysql...cape-string.php Og HVA er koden du tester?
Martin A. Skrevet 15. januar 2009 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; }
PS_CS4 Skrevet 16. januar 2009 Forfatter 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
AlecTBM Skrevet 16. januar 2009 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?
Wackamole Skrevet 16. januar 2009 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
PS_CS4 Skrevet 16. januar 2009 Forfatter 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);
Wackamole Skrevet 16. januar 2009 Skrevet 16. januar 2009 Se over eksempelet mitt, og hva er det du skal beskytte mot SQL injection?
PS_CS4 Skrevet 16. januar 2009 Forfatter 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.
AlecTBM Skrevet 16. januar 2009 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] ?>
PS_CS4 Skrevet 16. januar 2009 Forfatter 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
fezken Skrevet 16. januar 2009 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
OIS Skrevet 16. januar 2009 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.
PS_CS4 Skrevet 16. januar 2009 Forfatter 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 ?
AlecTBM Skrevet 16. januar 2009 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
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å