Avatar billede Mik2000 Professor
19. juni 2009 - 01:36 Der er 8 kommentarer og
2 løsninger

Sikkerhed fra post og get

Jeg har 2 spørgsmål:

1: Når jeg henter noget via POST og GET, hvad br jeg så kører for det er sikkert. Er addslashes og trim f.eks. nok eller skal der mere til?

2: Hvis jeg har en side hvorpå der køres noget delete fra databasen, hvordan sikrer jeg så bots mv ikke kommer ind og kører siden og dermed sletter fra databasen?
Avatar billede mk_ Nybegynder
19. juni 2009 - 01:55 #1
1.
  $variabel = mysql_real_escape_string($_GET["hilsen"]);
  mysql_query("INSERT INTO <tabel> (property, property ..) VALUES(NULL, $variabel);
  Dette skulle være nok, også til POST.

2. Jeg vil anbefale at du kræver en kode via GET eller POST.
  if($_GET["hemmelig_kode"] == "firs_d_100_60") {
    // Slet databasen her
  } else {
    print "Hov hov, her har du ikke adgang!";
  }

  Og så sletter du databasen via http://din_host/dit_script.php?hemmelig_kode=firs_d_100_60
Avatar billede j4k0b Nybegynder
19. juni 2009 - 07:03 #2
Avatar billede coderdk Praktikant
19. juni 2009 - 09:31 #3
Eller gå over til mysqli og bruge prepare/bind/execute - så slipper du for at skulle escape ;)
Avatar billede erikjacobsen Ekspert
19. juni 2009 - 09:50 #4
2. Man skal vel være logget ind for at slette. Dvs du kan kontrollere i en sessionsvariabel, at man er logget, og at man har lov til at slette den pågældende post, inden den bliver slettet.
Avatar billede znopie Nybegynder
19. juni 2009 - 14:14 #5
Er der ikke en dansk guide for mysqli ?
Avatar billede Mik2000 Professor
20. juni 2009 - 00:07 #6
Hej

Tak for de mange svar

1: Betyder det at mysql_real_escape_strings er nok at bruge eller skal der samtidige benyttes trim, add_slashes eller en anden?

2: Dvs hvis der blot er et tjek på om en session eksisterer, som sender dig til en anden side hvis de ikke gør - f.eks. med javascript , så vil bots ikke kunne komme uden om det og alligevel kører koden.
Er det korrekt forstået?
Avatar billede Mik2000 Professor
24. juni 2009 - 18:39 #7
Stadig nogle her?
Avatar billede erikjacobsen Ekspert
24. juni 2009 - 19:00 #8
Vedr. 1: Der anbefales at bruge mysqli med parameters (prepare/bind/execute) for at indsætte værdier i SQL-sætninger. Manuel escaping af tekststrenge er gammeldags.

Vedr. 2: Har du læst min kommentar i #4?
Avatar billede Mik2000 Professor
28. juni 2009 - 16:58 #9
Dem der vil have point som har svaret må gerne skrive svar
Avatar billede Mik2000 Professor
02. juli 2009 - 01:14 #10
Lukker ned
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