[PHP/MySQL] _POST _GET loopen voor veiligheid

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Mir
  • Registratie: Maart 2001
  • Niet online
He,

ik zat mij te bedenken, is het volgende veilig:

Het uitloopen van _POST en _GET bij elke aanroep van een pagina (index.php in mijn geval).
Elke waarde die eruit geloopt wordt gaat door een getSaveInput() functie heen en wordt weer terug in de _POST of _GET gezet.

Is dit veilig genoeg (geen work arounds voor hackers/crackers)? Ga ik hier tegen vervelende problemen aanlopen?

Acties:
  • 0 Henk 'm!

Verwijderd

Dat is toch heel normaal om te doen? Ik gebruik altijd casts om ervoor te zorgen dat ik geen sql injecties krijg. User input nooit vertrouwen, dus wat jij doet is niet echt onveilig. Als je nou vroeg om $_GET en $_POST globaal te maken zou ik je voor gek verklaren.

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

ligt eraan wat getSaveInput() doet natuurlijk ;)
daarnaast zou ik niet zo snel de originele input willen mishandelen, want vaak wil je juist de exacte waarden hebben ;)
Verwijderd schreef op donderdag 14 april 2005 @ 15:25:
Dat is toch heel normaal om te doen? Ik gebruik altijd casts om ervoor te zorgen dat ik geen sql injecties krijg. User input nooit vertrouwen, dus wat jij doet is niet echt onveilig. Als je nou vroeg om $_GET en $_POST globaal te maken zou ik je voor gek verklaren.
SQL injecties voorkom je met mysql_escape_string bij het bouwen van je query, dat moet je niet eerder doen imo ;)
en $_GET en $_POST zijn al globaal ;)

[ Voor 62% gewijzigd door Erkens op 14-04-2005 15:27 ]


Acties:
  • 0 Henk 'm!

  • Mir
  • Registratie: Maart 2001
  • Niet online
Ja,

daar heb ik dus ook over na lopen denken, ga ik elke situatie apart bekijken en kiezen of ik daar een getSaveInput() voor wil gaan gebruiken of niet.
Of ga ik voor de situatie dat ik zeker weet dat wát er in mijn _POST/_GET zit gewoon al veilig is.

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Mir schreef op donderdag 14 april 2005 @ 15:35:
Of ga ik voor de situatie dat ik zeker weet dat wát er in mijn _POST/_GET zit gewoon al veilig is.
wat daarin zit is nooit veilig, maar het ligt er maar aan waar je die info voor nodig hebt.
Als het naar je database moet, dan gebruik je iets als mysql_escape_string, en moet het terug naar de browser, dan gebruik je htmlentities etc etc.
Daarom pas ik die gegevens nooit aan, je wilt de gegevens zo puur mogelijk houden.

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Ik acht het zonde van de parsetijd om altijd alle vars na te lopen, ik doe dit liever op het moment dat ik deze nodig heb.

Stel je kunt via de GET meegeven welke pagina je wilt hebben, dan vang ik dat af met bijv;
PHP:
1
2
if(isset($_GET['page']) && is_numeric($_GET['page'])) {
}

waarna ik doe wat ik moet doen om de gevraagde pagina te tonen. Verwacht in een string, gooi ik er een eregi("[[:allnum:]]", $_GET['var']) overheen, etc.
Dan kan iemand zelf vars in de URL gaan plakken of zelf pagina's maken die naar mijn script submitten.. ik kijk alleen naar de vars die ik verwacht op de plek waar ik ze nodig heb

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

frickY schreef op donderdag 14 april 2005 @ 15:51:
Ik acht het zonde van de parsetijd om altijd alle vars na te lopen, ik doe dit liever op het moment dat ik deze nodig heb.

Stel je kunt via de GET meegeven welke pagina je wilt hebben, dan vang ik dat af met bijv;
PHP:
1
2
if(isset($_GET['page']) && is_numeric($_GET['page'])) {
}

waarna ik doe wat ik moet doen om de gevraagde pagina te tonen.
offtopic:
Vul daar voor de grap eens 23.1 in. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • tombo_inc
  • Registratie: December 2004
  • Laatst online: 04-02-2022

tombo_inc

uhuh

het is zeker niet onveilig wat je doet maar het kan wel parsetime kosten. verder is het helemaal niet zeker of het nodig is om alle waardes veilig te maken. wat ik altijd doe is het zaakje controleren waar ik het nodig heb, want op sommige plaatsen maakt het helemaal niks uit. je moet in ieder geval nooit userinput vertrouwen.

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition

Pagina: 1