Framework Features

  • Beste ICTscripters,


    Ik ben al een tijdje bezig met een PHP5+ framework, waarvan een deel van de core nu af is.
    Nu ben ik voor mezelf aan het inventariseren welke functionaliteit ik graag zou willen toevoegen, en nu vroeg ik af wat jullie handig vinden in een framework.


    Huidige featurelist (lang niet alles is af)


    • HMVC structuur (Hiërarchisch Model View Controller) - Zit erin sinds 2013-07-29
    • URL Routing - Zit erin sinds 2013-07-29
    • PDO database + query builder
    • ORM (Object Relation Mapping)
    • Internationalisatie (I18N en L10N, talensysteem)
    • Anti-Sqlinjectie, XSS en CSRF
    • Support voor zowel Web als Console applicaties - Zit erin sinds 2013-07-29
    • Template systeem (door K.Rens) - Zit erin sinds 2013-08-11
    • Authentication (door K.Rens)
    • Geavanceerd logsysteem (door Tim) - Zit erin sinds 2013-08-04


    Het maakt overigens niet uit hoeveel functies er worden toegekend. Het framework is zo gebouwd dat bestanden pas worden ingeladen als ze worden aangeroepen voor de eerste keer. Het framework word sowieso lichter dan symfony, cakephp, zend en codeigniter/kohana.


    Alvast bedankt,


    Michael

    Dit was mijn spreekbeurt, zijn er nog vragen?

    Bewerkt 11 keer, laatst door M.Beers ().

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Voor mij persoonlijk zijn volgende dingen altijd belangrijk:
    - DAO
    - Model & controller structuur
    - templates (smarty like)
    - Basis beveilging


    Verder vind ik het ook altijd leuk als in een framework al een standaard authenticatie module zit,
    die wachtwoorden veilig opslaagt met dubbele salt etc.
    Niet dat dit echt in het framework moet zitten, maar voor veel sites die ik gebruik is het wel een standaard module :)


  • Wat bedoel jij precies met een dubbele salt? :wacko:

  • Wat bedoel jij precies met een dubbele salt?


    Een salt is een extra sleutel die betrokken word bij je het controleren van je wachtwoord.
    Zo voorkom je dat er een derde partij (hacker) je wachtwoord kan lezen tijdens een GET/POST/AJAX request of kan oplossen met Rainbow tables


    Edit: In mijn geval is een dubbele salthash niet nodig omdat er ook CSRF (Cross-Site Request Forgery) in komt waarbij er automatisch bij elke POST/REQUEST een unieke code komt die gecontrolleerd word.

    Dit was mijn spreekbeurt, zijn er nog vragen?

    Bewerkt één keer, laatst door M.Beers ().

  • Een salt is een extra sleutel die betrokken word bij je het controleren van je wachtwoord.
    Zo voorkom je dat er een derde partij (hacker) je wachtwoord kan lezen tijdens een GET/POST/AJAX request of kan oplossen met Rainbow tables


    Edit: In mijn geval is een dubbele salthash niet nodig omdat er ook CSRF (Cross-Site Request Forgery) in komt waarbij er automatisch bij elke POST/REQUEST een unieke code komt die gecontrolleerd word.


    Ik snap wat een salt is, maar ik snap het nut van zijn dubbele salt niet. :P
    Als je gewoon gebruik maakt van een trage encryptie methode, in combinatie met een salt die per user uniek is en redelijk lang. Plus daar bovenop het voor een gebruiker verplicht maakt om VeRsch!lL3nd# tekens te gebruiken dan zit je goed.


    En mag ik vragen waarom je er zelf een bouwt? Gewoon om PHP beter te leren of wil je echt de strijd aangaan met andere bestaande frameworks?

  • Ik heb tijd over dus dat leek me wel een leuk project. Verder zie ik wel of ik de concurrentie aan ga met bestaande frameworks. Het is voornamelijk voor mijn onderneming om snel een applicatie te bouwen en ik codeigniter enzo een beetje zat ben teveel mappen en troep


    Edit Maar dubbele salt is idd overbodig... md5(sha1($username) . $password . $salt); moet voldoende zijn

    Dit was mijn spreekbeurt, zijn er nog vragen?

    Bewerkt één keer, laatst door M.Beers ().

  • Een MD5 over een Sha1 hash heen gooien doet niks voor je, dan kan je beter bcrypt gebruiken.
    Het sterke punt van Bcrypt is de enorme variabele traagheid ervan.


    En ik heb ook lang gebruik gemaakt van CodeIgniter, maar ben recent overgestapt op Laravel.
    Ben er enorm van onder de indruk, lage leercurve net als bij CI maar ook nog eens een van de snelste onder de frameworks.


    En het heeft ook een beetje een Ruby on rails achtige feel.

  • PHP
    //Oud
    md5(sha1($username) . $password . $salt);
    //Nieuw
    hash("SHA512", $salt . $password . $salt);


    Zo kan je het ook gewoon doen dan heb je een dubbele salt draaien op een 128 bit encryptie.
    Ik zou echter eens kijken naar de Blowfish encryptie...


    Meer informatie vind je hier: http://php.net/manual/en/function.crypt.php & http://www.the-art-of-web.com/php/blowfish-crypt/

  • Nou, dubbel encryptie maakt niet echt uit welke het is. dubbel md5 of md5 met sha. Inderdaad sha + md5 is beter en ook veiliger en er is bijna geen kans dat het in een encryptie database zit maar dat is ook met md5 + md5.


    Tegenwoordig kunnen we met de GPU decrypten dus ook al worden er meer erop gegooit het blijft niet veilig, dus het enige echt veilige is een eigen encryptie te maken. En geen md5, sha, enzovoort.

  • bramieboy100, kan kloppen maar bruteforcers blijft altijd bestaan. Maar ehm, eigen encryptie is altijd de beste. Naja, het is ook niet bepaald veilig als je hele server gehacked word, maar het is de beste manier om jezelf te beveiligen. En ik neem aan dat de site helemaal niet gehacked had mogen worden en dat iemand speciaal voor ... persoon een bruteforce maakt :P

  • bramieboy100, kan kloppen maar bruteforcers blijft altijd bestaan. Maar ehm, eigen encryptie is altijd de beste. Naja, het is ook niet bepaald veilig als je hele server gehacked word, maar het is de beste manier om jezelf te beveiligen. En ik neem aan dat de site helemaal niet gehacked had mogen worden en dat iemand speciaal voor ... persoon een bruteforce maakt :P


    Als er een website gehackt wordt heeft de persoon alles, als een database gehackt word heeft hij nog niks als hij je SALT niet weet.
    Moet je natuurlijk niet een MD5 of SHA1 gebruiken want daar bestaan teveel programma's en databases voor om te decrypten.


    Wens je veel succes, als ik er 2x een SALT overheen zet waarvan ieder 35 tekens kan jij die in geen honderd jaar kraken.
    Zodra je de SALT' weet misschien wel maar zonder de SALT zal jij dit nooit vinden indien er SHA512 draait welke 128 Bit is.



    Code
    453ae0247f99fa2addc87981341868ce135da0c6e353e24f16d25ad1802afcf79b0e06820add2bed1dc13d4936d8859510e49dda2e5f30096ca251eaef1b5578


    Als je dit kan bruteforcen en als jij daarvan de uitkomst weet krijg je € 100.00

  • Als je iets van forms gebruikt/ondersteunt, voeg dan zeker een hidden 'id' bij.
    Elke keer het formulier wordt verstuurd, geef je een nieuwe hidden unieke 'id' mee.
    Op deze manier blokkeer je meteen ook veel standaard tools die je formulieren automatisch submitten ;)
    Is een goede feature die veel frameworks nu nog niet hebben.


    ps: wat betreft md5, ik zou dit zelfs totaal niet gebruiken in mijn encryptie, en zeker niet als eind-encryptie.
    Dit omwille van het feit dat er zoveel dubbele waarden bekend zijn van md5 (collision) en omdat er al zoveel databanken met veel md5 hashes bekend zijn (rainbow tables).

  • Dit topic is al iets ouder, maar om hem toch maar even te vervolgen...
    Inmiddels heb ik alles aangepast + klaar voor nieuwe features op mijn lijst.


    Verder info:
    Zonder server optimalisatie's laad het gehele framework momenteel in 0.00859 seconden, en gebruikt 592,368 bytes (~0,57 kb) met een piek van 1,310,720 bytes (~1,28kb)


    Dus mocht er interesse zijn in meer functionaliteit post it below :thumbup: binnenkort zal ik een 2e release uitbrengen m.b.t. het topic:
    Delicious Framework omdat ik deze niet kan bumpen...


    Alvast bedankt,


    Michael


    Edit @Koen Ik zal binnenkort even een kijkje nemen naar die hidden form met ID, werkt inderdaad wel effectief tegen bots denk ik zo.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!