login  Naam:   Wachtwoord: 
Registreer je!
 Forum

is deze $_GET veilig?

Offline Nrzonline - 23/07/2006 02:33 (laatste wijziging 23/07/2006 03:02)
Avatar van NrzonlinePHP ver gevorderde
  1. <?PHP
  2.  
  3. function check_key ($key)
  4. {
  5. return ereg ("([a-z0-9])$", $key) ? TRUE : FALSE;
  6. }
  7.  
  8. if (isset ($_GET['key']))
  9. {
  10. if (check_key ($_GET['key']))
  11. {
  12. //query
  13. }
  14. }
  15. ?>


met a-z0-9 (controle) kan je toch nooit in je leven iets mee uitvoeren wat kwaad kan in mijn query?

Verder nog even een vraagje:
Mijn registratie systeem vereist dus activatie. Nu wil ik dus het
gebruikers_id terug krijgen direct nadat de query is uitgevoerd.
Daar was een command voor, maar die kan ik helaas niet weer
vinden.. Iemand enig idee welk command dat is?

Alvast bedankt,
Nrzonline

6 antwoorden

Gesponsorde links
Offline Maarten - 23/07/2006 03:52
Avatar van Maarten Erelid Controle op a-z / 0-9 is inderdaad veilig 
Als je echter ID's van items etc gaat doorspelen via $_GET is enkel 0-9 toegelaten, dus je kan mss 2 versies maken dan ofzo.

Vraag 2: mysql_insert_id(); graag gedaan 
Offline haytjes - 23/07/2006 09:51 (laatste wijziging 23/07/2006 09:51)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
om op vraag 1 terug te komen. Ik heb onlangs PHP.net: ctype_alnum tegengekomen. Normaal moet dit sneller zijn en ook beter. Ik heb het zelf wel nog niet gebruikt.
Pas wel op, voor PHP5.1 ,als je een lege string ingeeft, returnt hij true. Na PHP5.1 returnt hij false. Ik zou dus:

  1. return (!empty($key) || ctype_alnum($key))


en ps:
moet dat niet hetvolgene zijn:
  1. return ereg ("^[a-z0-9]*$", $key)
Offline demich - 23/07/2006 10:37 (laatste wijziging 23/07/2006 10:37)
Avatar van demich Nieuw lid ik maak mijn gets zo

if (is_numeric($_GET["id"])
{
$id = $_GET["id"];
}

Das toch ook veilig (werk alleen met cijfers)
Offline Nrzonline - 23/07/2006 13:13
Avatar van Nrzonline PHP ver gevorderde @murfy, bedankt!

@haytjes, ook bedankt, ik ga het even testen en proberen met
die commands aangezien ik die ook nog niet ken.

@demich, yups met een numeriek getal gebruik ik ook altijd gewoon
is_numeric() command. Dus daar was ik al van op de hoogte, maar
het ging mij om a-z + 0-9 of je daar niets mee zou kunnen doen.
Thanks anyway.
Offline Rens - 23/07/2006 14:13
Avatar van Rens Gouden medaille

Crew algemeen
Citaat:
Controleer of een variabele een nummer of een numerieke string is

PHP.net: is_numeric accepteerd ook wiskundige notaties dacht ik.
Daarvoor kun je beter PHP.net: ctype_digit gebruiken, die accepteerd alleen getallen.
Offline Nrzonline - 23/07/2006 14:44
Avatar van Nrzonline PHP ver gevorderde Ok, ik gebruik nu ctype_digit & ctype_alnum voor mijn $_GET
controles, bedankt allemaal.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.198s