SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Deed ik heel vroeger ook (toen ik 16-17 was), nu werk ik volgens OOP en MVC.quote:Op donderdag 5 januari 2012 11:05 schreef boem-dikkie het volgende:
Dat script van die leraar trouwens. Je hele HTML echo'en.
Extra sessies zijn eigenlijk ook slechts lapmiddelen.quote:Op donderdag 5 januari 2012 21:40 schreef Dokay het volgende:
Beste PHP devvers,
Even een vrij basale vraag. Voor mijn werkgever heb ik een php applicatie in elkaar geknutseld waarbij men intern mensen in kan roosteren en mensen extern aan kunnen geven wanneer ze beschikbaar zijn. Ziekte en verlof worden ook allemaal geregeld, iedereen blij. Alleen nu het steeds meer en meer gebruikt wordt door deze middelgrote organisatie begint mijn zorg over de veiligheid te stijgen. Laat ik eerlijk zijn: ik heb het in elkaar gezet met trail en error, heb nooit een PHP boek of cursus gedaan en met frunniken lukt me eigenlijk altijd wel wat ik wil. Maar ik weet ook dat het waarschijnlijk niet de veiligste en meest efficiente manier is.
Waar ik vooral tegen aan loop en wil vragen hoe jullie dat doen;
Als ik variabelen door minimaal 2 verschillende page's moet loodsen, gebruik ik de HTML "hidden input" tag om deze vast te houden en vervolgens weer door te zetten naar de volgende pagina die er wat mee doet.
Nou heb ik er nooit bij stilgestaan dat een kwaadwillende gebruiker deze hidden input tag kan invullen naar wens en vervolgens terug kan sturen naar de server met allerlei kwaadaardige code. In het geval van mijn appje zou dat een catastrofe zijn, want het zit bomvol met dit soort code om de eerder opgegeven waarde vast te houden.
Ik heb gepoogd om een extra SESSION aan te maken om de variable vast te houden, maar er loopt er al een van de gebruiker die ingelogd is en welke zijn ID vasthoud. Het geeft problemen als ik een tweede sessie hiernaast probeer te starten want dan wordt aangegeven dat er al een sessie loopt.
Hoe lossen jullie dit op? Alvast bedankt!
Bedankt voor je snelle reactie,quote:Op donderdag 5 januari 2012 22:00 schreef Ofyles2 het volgende:
[..]
Extra sessies zijn eigenlijk ook slechts lapmiddelen.
Ik zou de gegevens gewoon controleren totdat een gebruiker zijn opdracht volledig heeft voltooid.
Dus onder andere: waarden typecasten (in een voor jouw gunstige type), reguliere expressies, htmlentities, strip_tags. Ik stel voor de controlemodellen in een aparte map op te slaan en de bestanden hierin alleen aan te roepen als het echt nodig is.
Desgewenst kun je je projectje ook naar mij toesturen als je het echt niet ziet zitten...
Of je verdiept je een keer in classes en bent ook per direct van het gezeik af. Dan ben je nog flexibelerquote:Op donderdag 5 januari 2012 22:29 schreef Ofyles2 het volgende:
In dat geval zou ik ook voor de 30 diensten een aparte MySQL-tabel maken. Het id-nummer zou ik meegeven met de URL.
Wat betreft SQL-injecties: deze kun je tegengaan door invoerwaarden te controleren en eventueel te escapen (mysql_real_escape_string).
Off-topic:
Een veel betere aanrader is PDO (hier een tutorial), waarmee je meerdere databasesystemen kunt gebruiken zonder complete codeblokken om te ploegen.
Dat gaat in dezelfde sessie, je kunt $_SESSION['blahblah'] met vullen en daarna $_SESSION['user'] met wat anders.quote:Op donderdag 5 januari 2012 21:40 schreef Dokay het volgende:
Ik heb gepoogd om een extra SESSION aan te maken om de variable vast te houden, maar er loopt er al een van de gebruiker die ingelogd is en welke zijn ID vasthoud. Het geeft problemen als ik een tweede sessie hiernaast probeer te starten want dan wordt aangegeven dat er al een sessie loopt.
Bedankt voor je tip, ik ga het morgen meteen uitproberen!quote:Op donderdag 5 januari 2012 22:34 schreef GlowMouse het volgende:
[..]
Dat gaat in dezelfde sessie, je kunt $_SESSION['blahblah'] met vullen en daarna $_SESSION['user'] met wat anders.
Yep.quote:Op donderdag 5 januari 2012 22:37 schreef Dokay het volgende:
[..]
Bedankt voor je tip, ik ga het morgen meteen uitproberen!
Is er ook een mogelijkheid om van te voren gedefinieerde waarden (welke ik nu in hidden HTML tags heb staan) veilig over te dragen tijdens de POST naar de volgende pagina..? (Behalve strip tags, eigenlijk dat er geen wijzingen in welke zin dan ook mogelijk zijn van de huidige waarde..)
Klopt, daar ben ik ook zeer grote voorstander van (als onderdeel van MVC- en OOP-programmeren).quote:Op donderdag 5 januari 2012 22:31 schreef Pakspul het volgende:
[..]
Of je verdiept je een keer in classes en bent ook per direct van het gezeik af. Dan ben je nog flexibeler
*meldt.quote:
Die reden zal wel later bedacht zijn. Als hashing ontbreekt zal de lengte van het db-veld de ware reden achter de beperking tot 12 karakters zijn.quote:Op vrijdag 6 januari 2012 00:54 schreef KomtTijd... het volgende:
[..]
Maar srsly, een maximale lengte aan het password veld geven om SQL injectie te voorkomen?
Zoiets hoor je eerder op te lossen met preg_match en PDO.quote:Op vrijdag 6 januari 2012 00:54 schreef KomtTijd... het volgende:
[..]
*meldt.
Daarom ga ik ook niet datsoort systemen klussen, Maar srsly, een maximale lengte aan het password veld geven om SQL injectie te voorkomen? Echt wtf! Blijkbaar heeft iemand er wel over nagedacht dus, maar toen besloten dat mysql_real_escape() te moeilijk was ofzo Nog even los van de vragen over hoe dat in hemelsnaam gehashed is als die input zo de query in geslingerd wordt...
Preg_match En ja tegenwoordig doet iedereen dat met PDO of MySQLi (of aanverwanten in andere talen) maar als die website 5 jaar oud is ga je 'm niet helemaal herschrijven daarvoor.quote:Op vrijdag 6 januari 2012 00:57 schreef Ofyles2 het volgende:
[..]
Zoiets hoor je eerder op te lossen met preg_match en PDO.
Preg_match voor reguliere expressies. Je kunt nooit 100% zeker zijn dat al je bezoekers zo poeslief zijn...quote:Op vrijdag 6 januari 2012 00:59 schreef KomtTijd... het volgende:
[..]
Preg_match En ja tegenwoordig doet iedereen dat met PDO of MySQLi (of aanverwanten in andere talen) maar als die website 5 jaar oud is ga je 'm niet helemaal herschrijven daarvoor.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |