Tips nodig!
Hallo allemaal! Ik ben 2 jaar geleden een beetje begonnen met PHP&MYSQL te leren en te gebruiken. Vanaf toen ben ik bezig geweest om een werkurenadministratie-systeem te maken voor mn vaders bedrijf.
Dit werkt allemaal prima, alleen omdat ik met zulke beperkte kennis begonnen ben heb ik niet echt rekening gehouden met veiligheid (nooit over nagedacht). Dit lijkt me wel belangrijk omdat deze site gewoon online staat. Ook zijn er megaveel stukken scripts die 1000x 'dubbel' staan in de website en als er iets aangepast moet worden ben ik er gauw een uur mee bezig, ook is de kans groot dat ik als ik wat moet bewerken iets over het hoofd zie.
Daarom hebben we besloten om alles opnieuw te gaan bouwen, een nieuwe lay-out, dit keer mysql-injection proof scripts en zoveel mogelijk aan elkaar gekoppeld. Zo dynamisch & veilig & gebruiksvriendelijk mogelijk.
Omdat ik nog niet erg veel weet over beveiliging van websites/scripts de vraag aan jullie:
Waar moet/kan ik allemaal rekening mee houden?
Bedankt!
Dit werkt allemaal prima, alleen omdat ik met zulke beperkte kennis begonnen ben heb ik niet echt rekening gehouden met veiligheid (nooit over nagedacht). Dit lijkt me wel belangrijk omdat deze site gewoon online staat. Ook zijn er megaveel stukken scripts die 1000x 'dubbel' staan in de website en als er iets aangepast moet worden ben ik er gauw een uur mee bezig, ook is de kans groot dat ik als ik wat moet bewerken iets over het hoofd zie.
Daarom hebben we besloten om alles opnieuw te gaan bouwen, een nieuwe lay-out, dit keer mysql-injection proof scripts en zoveel mogelijk aan elkaar gekoppeld. Zo dynamisch & veilig & gebruiksvriendelijk mogelijk.
Omdat ik nog niet erg veel weet over beveiliging van websites/scripts de vraag aan jullie:
Waar moet/kan ik allemaal rekening mee houden?
Bedankt!
Gewijzigd op 19/07/2011 17:22:49 door Ard Timmerman
Quote:
Ook zijn er megaveel stukken scripts die 1000x 'dubbel' staan in de website en als er iets aangepast moet worden ben ik er gauw een uur mee bezig, ook is de kans groot dat ik iets over het hoofd zie.
Verdiep je eens in functions, of als het even kan in Classes en OOP.
Ook een goed genormaliseerde database-structuur is van belang.
Gewijzigd op 19/07/2011 17:24:48 door - Ariën -
Quote:
Ook zijn er megaveel stukken scripts die 1000x 'dubbel' staan in de website en als er iets aangepast moet worden ben ik er gauw een uur mee bezig, ook is de kans groot dat ik iets over het hoofd zie.
als je weet dat de functie op veel pagina's moet komen te staan gebruik je een include
je moet dan maar 1 bestand aanpassen
Bedankt Aar & php knipper! Ik zal naar Classes & OOP kijken. Of ik dat snap! En phpknipper, weet je ook of je stukjes uit bestanden kan includen? of is dat eigk het principe van Classes & OOP ?
Je moet goed weten op welke manieren de website gehackt kan worden. Hoe sessies gekaapt kunnen worden, de nadelen van shared hosting, SQL injectie, CSRF/XSRF aanvallen, XSS aanvallen.
Lees onderstaand sowieso door:
http://www.sk89q.com/2009/08/definitive-php-security-checklist/
http://www.phpfreaks.com/tutorial/php-security
http://phpsec.org/projects/guide/4.html
http://www.jemjabella.co.uk/2006/php-security-checklist/
Dan raad ik je aan om je te verdiepen in een framework als CodeIgniter. Dat is een van de makkelijkste frameworks om jezelf aan te leren en het neemt een groot aantal veiligheidsrisico's weg. Je hebt dan meteen een goede XSS filter, je input wordt automatisch geescaped (tegen SQL injectie) en session hijacking wordt grotendeels al tegen gegaan. Je code wordt ook vele malen onderhoudbaarder (als je je aan de richtlijnen houdt).
Lees onderstaand sowieso door:
http://www.sk89q.com/2009/08/definitive-php-security-checklist/
http://www.phpfreaks.com/tutorial/php-security
http://phpsec.org/projects/guide/4.html
http://www.jemjabella.co.uk/2006/php-security-checklist/
Dan raad ik je aan om je te verdiepen in een framework als CodeIgniter. Dat is een van de makkelijkste frameworks om jezelf aan te leren en het neemt een groot aantal veiligheidsrisico's weg. Je hebt dan meteen een goede XSS filter, je input wordt automatisch geescaped (tegen SQL injectie) en session hijacking wordt grotendeels al tegen gegaan. Je code wordt ook vele malen onderhoudbaarder (als je je aan de richtlijnen houdt).
Ard Timmerman op 19/07/2011 19:07:18:
Bedankt Aar & php knipper! Ik zal naar Classes & OOP kijken. Of ik dat snap! En phpknipper, weet je ook of je stukjes uit bestanden kan includen? of is dat eigk het principe van Classes & OOP ?
Sorry, ik ben het ook maar aan het leren. Ik help enkel als ik zeker ben dat je er iets mee bent en dat het juist is. dus over delen uit een bestant te halen ga ik mijn mond houden. ;)
Ard Timmerman op 19/07/2011 19:07:18:
Bedankt Aar & php knipper! Ik zal naar Classes & OOP kijken. Of ik dat snap! En phpknipper, weet je ook of je stukjes uit bestanden kan includen? of is dat eigk het principe van Classes & OOP ?
Nee dat kan niet. Met een include laad je alle code van het bestand waar je naar verwijst in op de plek waar je die include zet. Je zult je echt eens moeten verdiepen in OO inderdaad.
@Ard Timmerman
Is het niet gewoon handiger als je een framework gaat bestuderen?
Voordeel is dat je je zelf afdwingt om met classes en functions te werken.
Een function maken is op zich even doorhebben. Een class bouwen ook.
Echt OO schrijven is een ander verhaal, maar je maakt het jezelf denk ik met een bestaand framework al een stuk overzichtelijker.
Je zou eens kunnen kijken naar Zend Framework, is al een behoorlijke kluif.
Codeigniter is al wat simpeler van opzet en is ook veel hulp over te vinden.
Op nettuts plus staan hele goede video tutorials. google maar eens op "codeigniter from scratch"
Is het niet gewoon handiger als je een framework gaat bestuderen?
Voordeel is dat je je zelf afdwingt om met classes en functions te werken.
Een function maken is op zich even doorhebben. Een class bouwen ook.
Echt OO schrijven is een ander verhaal, maar je maakt het jezelf denk ik met een bestaand framework al een stuk overzichtelijker.
Je zou eens kunnen kijken naar Zend Framework, is al een behoorlijke kluif.
Codeigniter is al wat simpeler van opzet en is ook veel hulp over te vinden.
Op nettuts plus staan hele goede video tutorials. google maar eens op "codeigniter from scratch"
Sla Zend Framework maar over als je nog geen verstand hebt van OO. Daar ga je het echt lastig mee hebben. Bovendien kan je met een framework als CodeIgniter (of Symphony) veel sneller websites bouwen.
Begin niet meteen met frameworks maar leer eerst de basis van OO. Anders ben je enkel bezig met knip/plak werk en snap je niet hoe het echt werkt.
Begin niet meteen met frameworks maar leer eerst de basis van OO. Anders ben je enkel bezig met knip/plak werk en snap je niet hoe het echt werkt.
Zal ik er een boekje over kopen? Of weten jullie goede websites hiervoor? (heb al beetje zitten kijken maar ik snap er nog geen hout van!)
Een boek kopen is niet nodig.
Kijk eens naar deze video tutorials:
http://net.tutsplus.com/articles/news/codeigniter-from-scratch-day-1/
http://learn-codeigniter.com/
http://www.phpnoobs.nl/tutorials/categorie/codeigniter/
EDIT de laatste 2 links zijn al gebaseerd op de nieuwste versie van Codeigniter.
De eerste is al ietsje ouder, maar als je daar extends CI_Controller en extends CI_Model gebruikt dan werken deze ook. :)
Kijk eens naar deze video tutorials:
http://net.tutsplus.com/articles/news/codeigniter-from-scratch-day-1/
http://learn-codeigniter.com/
http://www.phpnoobs.nl/tutorials/categorie/codeigniter/
EDIT de laatste 2 links zijn al gebaseerd op de nieuwste versie van Codeigniter.
De eerste is al ietsje ouder, maar als je daar extends CI_Controller en extends CI_Model gebruikt dan werken deze ook. :)
Gewijzigd op 20/07/2011 08:15:44 door Bart V B
Super mensen! Bedankt! Ik ben aan de studie nu ^^




