[PHP] SQL uit invoer halen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 22:39
Ik ben bezig met een login systeem.
Als je niet ingelogd bent krijg je een schermpje waar je je username en password in kan vullen.
Als je dat dan verstuurd wordt de data vergeleken met data uit de database.
Maar ik zat te denken als je in het username vakje een stuk SQL query in gaat zitten tikken (DELETE statement bijv.) dan zou dit best eens een vervelend lek kunnen zijn.

Dus ik vroeg mij af of er een eenvoudige manier is om er voor te zorgen dat er geen code met malafide resultaten doorheen komt.

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

  • Eskimootje
  • Registratie: Maart 2002
  • Nu online
addslashes toevoegen aan elke string zoek even op php.net naar addslashes en stripslashes enzo

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

mysql_escape_string toepassen (of iets soortgelijks voor jouw db) en alle strings netjes tussen '' zetten.
checken of alle getallen wel getallen zijn etc.

Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 22:39
Maar als iemand dit DELETE * FROM blaat als username invult veranderd er door addslashes() nix aan.

Ik zit onderhand te denken om gewoon een array met verboden nicks te filteren (DELETE, ALTER, UPDATE enzow).

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:44

gorgi_19

Kruimeltjes zijn weer op :9

Tux schreef op 29 september 2002 @ 15:56:
Maar als iemand dit DELETE * FROM blaat als username invult veranderd er door addslashes() nix aan.

Ik zit onderhand te denken om gewoon een array met verboden nicks te filteren (DELETE, ALTER, UPDATE enzow).
Erhmm.. Waarom?
Wat is er mis met als naam "Delete"?
Hij voor dit niet uit hoor... (mits je je query goed opbouwd)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 22:39
gorgi_19 schreef op 29 september 2002 @ 15:59:
[...]

Erhmm.. Waarom?
Wat is er mis met als naam "Delete"?
Hij voor dit niet uit hoor... (mits je je query goed opbouwd)
Een query als:

SELECT id,username,password FROM members WHERE username='$username'

Dus als $username DELETE * FROM members is dan kan er niets mis gaan?

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

  • Eskimootje
  • Registratie: Maart 2002
  • Nu online
Dat lijkt me een beetje overdreven alles netjes tussen "" zetten is voldoende.

Je zou hooguit een foutmelding kunnen krijgen als je dit niet doet omdat je query dan fout id deleten kunnen ze echt niet.

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Als je als username "delete * from blaat" invoert wordt de uiteindelijke query iets als:
select * from blaat where username = 'delete * from blaat'

en daar is toch geen probleem mee ,het is wel een suffe naam natuurlijk :+
Check ook: het stukje over beveiliging in de faq

Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 22:39
Ok, ik heb het probleem opgelost :)

Bedankt voor de hulp!

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

  • judgem
  • Registratie: December 2001
  • Laatst online: 28-04-2014

judgem

Lord of Metal

Tux schreef op 29 september 2002 @ 16:12:
Ok, ik heb het probleem opgelost :)
Een hele flauwe vraag maar HOE heb je het opgelost? :+

- Ik bespreek ook harde waren en dan wel op www.lordsofmetal.nl - en ik draai en programmeer ze in DYNAMO

Pagina: 1