Avatar billede NielsErikP Mester
02. juli 2011 - 00:57 Der er 21 kommentarer og
1 løsning

MySQL/PHP --- mysql_real_escape_string??

Hej...
Har følgende del af et script mod SQl-Injektion  :



/* Sikkerheds script mod SQL injektions*/
    if(!get_magic_quotes_gpc()){           
        $navn = addslashes($navn);
        $besked = addslashes($besked);
    }



Jeg fik at vide her på Eksperten.dk , at "mysql_real_escape_string" er sikre end "get_magic_quotes_gpc".

Er der nogen der kan lære en nybegynder indefor PHP/MySQL, hvordan man omskriver min if sætning til mysql_real_escape_string.

På forhånd tak..!!
Avatar billede arne_v Ekspert
02. juli 2011 - 03:47 #1
$navn = mysql_real_escape_string($navn);
$besked = mysql_real_escape_string($besked);
Avatar billede arne_v Ekspert
02. juli 2011 - 03:49 #2
Og jeg haaber at du har:

$navn = $_POST['navn'];
$besked = $_POST['besked'];

ovenfor og ikke koerer paa det oldgamle register globals on.
Avatar billede arne_v Ekspert
02. juli 2011 - 03:50 #3
mysql_real_escape_string var ioevrigt det bedste for 5-10 aar siden.

Idag vil mysqli med parameter eller PDO med parameters vaere det bedste (kraever PHP 5).
Avatar billede NielsErikP Mester
02. juli 2011 - 10:06 #4
Hej..
#1:
Tænkte jeg nok, men som du kan se siges der (HVIS IKKE "get_magic_qoutes_gpc") skal der i mysql_real_escape_string ikke laves en HVIS spørgerunde???)


Det er et Gæstbogs script, ovenover har jeg :



/* Der spam-tjekkes og navn og besked hentes i html formularen.     
    if(isset($_POST["skriv"]) &&  strtolower($_POST["spamtjek"]) == "grøn"){
        $navn = htmlspecialchars($_POST["navn"]); 
        $besked  = htmlspecialchars($_POST["besked"]);




Nogen referencer til MySQli og PDO..???
Avatar billede majbom Novice
02. juli 2011 - 10:44 #5
Avatar billede NielsErikP Mester
02. juli 2011 - 11:08 #6
Hej...
Nej splazz!!!
Det link havde jeg selv fundet..!!!
Så må man være lidt mere specifik!!
Avatar billede majbom Novice
02. juli 2011 - 13:43 #7
Avatar billede webweaver Praktikant
02. juli 2011 - 16:33 #8
#4 Nej, der skal ikke nogen if sætning til MySQL funktionen.

magic_quotes_gpc er en indstillingsmulighed i PHP.
Grunden til, at man har if sætningen, er bare for at checke om det er slået til eller fra. Hvis det er slået fra, benytter den sig af addslashes() istedet, som sådan set er den samme funktion.

magic_quotes_gpc bør ikke benyttes længere, da funktionen vidst er udfaset/forældet i PHP 5 versionen et eller andet sted.

Det bedste du kan benytte dig af (og lige så godt sætte dig ind i fra start af, nu hvor du er ny i det) er det som du ofte hører som prepared statements. Det er også det som du bliver henvist til her tidligere i tråden :-)
Avatar billede arne_v Ekspert
02. juli 2011 - 17:53 #9
http://www.php.net/manual/en/security.magicquotes.why.php


There is no reason to use magic quotes because they are no longer a supported part of PHP. However, they did exist and did help a few beginners blissfully and unknowingly write better (more secure) code. But, when dealing with code that relies upon this behavior it's better to update the code instead of turning magic quotes on. So why did this feature exist? Simple, to help prevent SQL Injection. Today developers are better aware of security and end up using database specific escaping mechanisms and/or prepared statements instead of relying upon features like magical quotes.
Avatar billede NielsErikP Mester
03. juli 2011 - 01:39 #10
Hej...
Ja...splazz.. Så kan jeg jo se at der skal til at tænkes og læres ""LIDT"" ekstra. mht til mysqli::prepared statments. Det må jeg se om jeg forstår, jo endnu ikke så velbevandret i php/mySql.
#8 : Okay, men er det så helt farligt at benytte sig af Mysql_real_escape_string indtil man får sat sig ind i prepared statments. Mener man skal jo have noget op på nettet..!!

#9:
hi..hi..ja så passer det jo godt jeg valgte magic_qoutes, da jeg som sagt er NY i faget.
Avatar billede arne_v Ekspert
03. juli 2011 - 02:13 #11
mysql_real_escape_string er lige akkurat OK

magic quotes, addslashes etc. er noget juks.
Avatar billede NielsErikP Mester
03. juli 2011 - 10:59 #12
Hej..
Nej..Nu er dæleme ved at være godt træt af det Ekspert.dk lort. Arne_V så dit indlæg #11 igår nat, prøvede to gange at skrive et indlæg, hver gang jeg sagde "opret" blev siden bare hvid, så lukkede jeg ned og prøvede at gå her ind igen, så var logon felterne helt væk, så jeg ikke kunne logge ind og mine skrevne indlæg var der heller ikke. Da nu tog linket til spørgsmålet fra min mail adresse eksisterede indlæg #11 ikke, så loggede jeg ind så var indlæg #11 der. Er der nogen der ved hvad der sker for folkene bag eksperten.dk.

#11:

Ja..okay så bruger jeg dit forslag i #1, det var jo egentligt også det jeg efterlyste i spørgsmålet. Men vil egentligt gerne give splazz og webweaver kredit for deres indlæg også. Er jo rart som ny at der er lidt diskution om emnet og man får nogle nye tænke måder indenfor det man prøver at lære.
Avatar billede arne_v Ekspert
03. juli 2011 - 16:45 #13
eksperten.dk har en cache af en eller anden slags - det sker specielt midt om natten at cachen ikke bliver opdateret saa man ser traad som den saa ud for N minutter siden.
Avatar billede majbom Novice
03. juli 2011 - 18:52 #14
jeg springer over :)
Avatar billede arne_v Ekspert
03. juli 2011 - 20:17 #15
svar fra mig
Avatar billede NielsErikP Mester
04. juli 2011 - 00:49 #16
Hej...
#13:
Ja.. For det er rimelig træls, men når man så bare ved det er Ekperten.dk, så går det jo nok, selvom det er træls, og synd for et ellers rimmeligt godt site.


#14:
Jamen så ihvertfald tak til dig, Splazz :-)

#15:
Venter lige og ser om Webweaver kommer forbi også..!!
Avatar billede webweaver Praktikant
05. juli 2011 - 02:21 #17
Jeg springer også over i denne omgang :)
Avatar billede webweaver Praktikant
05. juli 2011 - 16:23 #18
Hmm, Eksperten skal altid drille!
Avatar billede webweaver Praktikant
05. juli 2011 - 16:24 #19
Ja, det tænkte jeg nok .. Lige så snart man skriver et indlæg, så kommer det frem, det som man skrev for jeg ved ikke hvor mange timer siden. Eksperten må snart til at optimere deres system!
Avatar billede NielsErikP Mester
05. juli 2011 - 20:48 #20
Hej..
WebWeaver..det gjorde de faktisk i går aftes ved 24.00- 00.30 tiden.. IDG altså, men hvis du har oplebet problemer  lidt over 16, ja så virker det åbenbart ikke. Jamen det er ok Arne_V får point.

Arne_v her er point og tusind tak for hjælpen!!

Take Care..!!
Avatar billede webweaver Praktikant
05. juli 2011 - 21:01 #21
Systemet har været skidt kørende meget længe. Det er om natten problemerne opstår, hvor der sker "et eller andet", så der opleves en uacceptabel lack til tider.

Problemet opstod ikke klokken 16, men i nat klokken 02.21, hvor jeg skrev indlæg #17. Det kom dog ikke frem før jeg skrev indlæg #18. Fejlen er som sagt ikke ny, så jeg vidste at indlægget ville dukke op, når jeg postede mit næste indlæg ... Andre gange dukker det op af sig selv efter noget tid, men irriterende er det i hvert fald.

Take care yourself :)
Avatar billede NielsErikP Mester
05. juli 2011 - 21:20 #22
Hej..
Ja...Jeg ved det, har selv oplevet a "BUNCH" af problemer her på Eksperten.dk. Rigtigt træls, for det er ellers et suverænt koncept og en fed side.

Tak!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester