Tråd bedømmelse:
  • 0 Stemmer - 0 Gennemsnit
  • 1
  • 2
  • 3
  • 4
  • 5
hjælp til at php kode
11-11-2013, 23:43 (Denne besked var sidst ændret: 11-11-2013, 23:46 af Doctor Blue.)
#11
RE: hjælp til at php kode
(11-11-2013, 23:39)Morph3s Skrev: Vel en form for at validere den parameter. Selvom jeg ikke ville bruge den løsning, virker det som det eneste logiske.
Den vil jo smide en fejl så snart du prøver på SQL injection.

Så tror jeg ikke du kender PHP's conversion matrix godt nok. Den laver det mærkeligste rod nogensinde. Hvis man skal lave en fornuftig validering sørger man for at regexen /[^0-9]/ ikke matcher noget.
Mangler du hjælp?
Regler |  E-mail (PGP)
Besøg denne brugers hjemmeside Find alle beskeder fra denne bruger
Citer denne besked i et svar
11-11-2013, 23:45 (Denne besked var sidst ændret: 11-11-2013, 23:46 af Morph3s.)
#12
RE: hjælp til at php kode
(11-11-2013, 23:43)Doctor Blue Skrev: Så tror jeg ikke du kender PHP's conversion matrix godt nok.

Kender intet til den :D


(11-11-2013, 23:43)Doctor Blue Skrev: Hvis man skal lave en fornuftig validering sørger man for at regexen /[^0-9]?/ ikke matcher noget.

Altså intval() ?
Følg mig på twitter: https://twitter.com/Morph3s
Find alle beskeder fra denne bruger
Citer denne besked i et svar
11-11-2013, 23:54 (Denne besked var sidst ændret: 12-11-2013, 00:00 af Doctor Blue.)
#13
RE: hjælp til at php kode
(11-11-2013, 23:45)Morph3s Skrev: Altså intval() ?

Nej. Intval evaluerer strengen som et heltal. Det vil sige at den ignorerer bogstaver og tegn og tager den første serie af tal og gemmer dem som en int (et heltal).
intval("asd2455ppfod4"); ville returnere 2455.
Ja, du ville undgå SQL injection, men hellere give brugeren en fejl end at give dem noget tilfældigt indhold (og i øvrigt bruge de funktioner der er lavet til at escape med).

Med min metode skal du tjekke inputtet og returnere en fejl. Det er det eneste rigtige når brugeren udemærket ved at der ikke er tale om gyldigt input.
if(preg_match("/^[0-9]/")){
die("Ugyldigt input");
}

EDIT: Alternativt er der funktionen is_numeric() som jeg ikke selv kendte til før jeg havde googlet lidt på sagen. Princippet er det samme :)
Mangler du hjælp?
Regler |  E-mail (PGP)
Besøg denne brugers hjemmeside Find alle beskeder fra denne bruger
Citer denne besked i et svar
12-11-2013, 01:30
#14
RE: hjælp til at php kode
nu vil jeg gå i seng :)
- damen og jeg takker, og glæder os til at "lege" vidre imorgen :P

et link til dem som gerne vil se det live, mangler dog at lave en "hvis id ikke er i database lav skriv blah lbah"

http://dejligepatter.dk/beta/img.php?id=2&size=3


btw hun er sku helt vild, efter vi er begyndt at lave på "hendes" side :P
- det som planen er med side, er at lave en hot or not hvor man kan upload billeder (patter!)
Er ordblind, så stavefejl er gratis! XD
Ailicis.cc | Quadcopter | Bitcoin | Facebook | Skype
Besøg denne brugers hjemmeside Find alle beskeder fra denne bruger
Citer denne besked i et svar
12-11-2013, 19:39
#15
RE: hjælp til at php kode
(11-11-2013, 23:54)Doctor Blue Skrev: Nej. Intval evaluerer strengen som et heltal. Det vil sige at den ignorerer bogstaver og tegn og tager den første serie af tal og gemmer dem som en int (et heltal).
intval("asd2455ppfod4"); ville returnere 2455.
Ja, du ville undgå SQL injection, men hellere give brugeren en fejl end at give dem noget tilfældigt indhold (og i øvrigt bruge de funktioner der er lavet til at escape med).

Med min metode skal du tjekke inputtet og returnere en fejl. Det er det eneste rigtige når brugeren udemærket ved at der ikke er tale om gyldigt input.
if(preg_match("/^[0-9]/")){
die("Ugyldigt input");
}

EDIT: Alternativt er der funktionen is_numeric() som jeg ikke selv kendte til før jeg havde googlet lidt på sagen. Princippet er det samme :)

Oh, jeg troede faktisk at den blot validerede om det var en int. Misvisende navn! - Oh well. Altid godt at lære noget nyt ;)
Følg mig på twitter: https://twitter.com/Morph3s
Find alle beskeder fra denne bruger
Citer denne besked i et svar
14-11-2013, 21:12 (Denne besked var sidst ændret: 14-11-2013, 21:15 af iTick.)
#16
RE: hjælp til at php kode
(11-11-2013, 20:33)ailicis Skrev: har jo en or die(mysql_error()); som afslutter det :P
- koden er nu
Kode:
mysql_select_db("dejligepatter") or die(mysql_error());

Ah, ok. Så giver det mening. :)

(11-11-2013, 20:57)BlimBlamBlar Skrev: Du bør ikke have die(mysql_error()) i din kode...allerhøjst kun i udvikling/test.
Hvem ser den fejlbesked? Det gør den bruger, som får koden til at fejle...ikke dig.
Og fejlbeskeden fra mysql kan indeholde informationer om den forespørgsel, som fejlede og andet godt. Så ved fejl bør du skrive en log besked et sted, som du har adgang til, og skrive ud til brugeren at noget gik galt...ikke en masse detaljer.

Og ailicis, som skrevet her over, er det vigtigt, ikke at give brugeren unødig info. En rigtig go idé er, at gå php.ini igennem og sætte alt til "prod", så vil den nemlig ikke skrive sådanne ting ud til brugeren ved et uheld.
Kig den igennem, så giver det god mening. :) I hvert fald, når du gør den offentlig tilgængelig. :)
---
Writing a shellcode decoder stub in assembly is like talking gibberish in such a way that it is still perfectly intelligible. - iTick
Besøg denne brugers hjemmeside Find alle beskeder fra denne bruger
Citer denne besked i et svar
15-11-2013, 18:31
#17
RE: hjælp til at php kode
Seriously, guys. Mysql* er ikke understøttet i de nye versioner af PHP. Brug Mysqli eller PDO
Find alle beskeder fra denne bruger
Citer denne besked i et svar
15-11-2013, 19:37 (Denne besked var sidst ændret: 15-11-2013, 19:53 af jamenjamen.)
#18
RE: hjælp til at php kode
Hvis du læste tråden DarkNigga så ville du se at det har DoctorBlue allerede skrevet ;)

Ontopic så kan du også anvende preparedstatements for højere sikkerhed :)
Find alle beskeder fra denne bruger
Citer denne besked i et svar
« Ældre | Nyere »




User(s) browsing this thread: 1 Gæst(er)