Posts by Stefan.J

    Je virus scanner heeft hier inderdaad weinig invloed op.. Hoewel virusscanners wellicht in staat worden om gecompileerde mogelijke schadelijke code te herkennen.


    In het dagelijks leven programmeer ik veel Java. Bij de laatste editie van Devoxx heb ik een presentatie gezien van een Java security expert die toen al wist te vernoemen dat zijn bedrijf drie security issues in Java kende die nog niet bekent waren. Oracle is blijkbaar erg slordig met het patchen van deze bugs, helaas.


    De security issues ontstaan doordat het mogelijk is via bijvoorbeeld de Reflection API om de security manager heen te komen of deze uit te schakelen. Dit heeft te maken met allerlei ingewikkelde class loader structuren en permissions.


    De lekken zorgen er weliswaar voor dat het mogelijk is toegang te verschaffen tot een systeem, maar dit betekend zeker niet dat je Java over boort hoeft te komen. Java code die op jou systeem staat heeft sowieso volledige toegang tot je systeem (netzoals een executable (.exe)). Het probleem schuilt hem in embedded applicaties in je browser. Deze hebben standaard beperkte toegang tot je machine, maar kunnen hier dus (gedeeltelijk) om heen.


    Je pinpas, telefoon en waarschijnlijk het overgrote deel van de webapplicaties die je gebruikt draaien ook op Java, maar deze hebben geen last van de security issues.

    Met een debugger kun je regel voor regel door je code heen stappen terwijl het wordt uitgevoerd. Wat jij beschrijft is gewoon een syntax check. Omdat PHP code niet wordt gecompileerd kom je standaard pas runtime achter syntax errors. Er zijn echter IDE's, zoals Netbeans, die er ook goed in zijn om syntax fouten te vinden.

    Darsstar: Het singleton pattern is bijna nooit een goed idee. Voor een class die de database connectie beheerd ook zeker niet.


    Ik heb wel vaker commentaar gegeven op dit soort ideeën. Alleen een Database class is sowieso niet genoeg. Je zult ook al snel classes krijgen als Query en DatabaseResult. Zie ook mijn reactie in het volgende topic:


    [OO] Voorbeeld class

    Natuurlijk zitten er nadelen aan social media. Sommige mensen snappen dingen niet, waardoor ze bijvoorbeeld dingen publiekelijk zetten terwijl ze dat niet willen, mensen delen onbewust persoonsgegevens, mensen kunnen ongewenste dingen delen over een ander, enz.


    Dat zijn nadelen aan social media zoals Facebook of Twitter. Kunnen Facebook en Twitter daar wat aan doen? Of zijn ze daar verantwoordelijk voor? Nee, maar dat is een hele andere vraagstelling.


    Iets als Project X was nooit mogelijk geweest zonder social media, en komt dus ook mede door social media. De Facebook moord kun je zien als een gevolg van het makkelijk communiceren via Facebook, dat was waarschijnlijk nooit gebeurd als de daders alles hadden moeten afspreken in een normaal gesprek.


    Ik veroordeel social media daarmee niet, maar er zijn wel nadelen doordat mensen niet goed weten hoe ze social media moeten gebruiken of juist goed weten hoe ze het moeten misbruiken.

    Je hoeft niet je eigen IP-adres toe te voegen aan de Allow lijst want je benaderd je script niet via je webserver.


    Waarom zou je dit überhaupt oplossen met een .htaccess file en waarom niet gewoon door de rechten juist in te stellen zodat je webserver gebruiker (apache, www-data, ..) er niet bij kan?

    Waarom return't je run_query() methode geen object (bijvoorbeeld QueryResult) waar je vervolgens de methoden getNumRows(), getFirstResult() getResults() op kunt aanroepen?


    mysqli is de vervanger van mysql_* en bevat de nieuwste functies van MySQL waar mysql_* dat niet doet. Vanaf, uit mijn hoofd MySQL 5.x wordt mysqli aangeraden. PDO is weer een ander verhaal..

    Als je geen toegang hebt tot zijn systeem (fysiek) en hij jou daar geen permissies voor heeft gegeven op enige manier, dan kan het in principe niet.


    Natuurlijk bestaat er nog zoiets als inbreken, maar daarvoor zou je erachter moeten komen welke services op zijn systeem beschikbaar zijn of één van deze service misschien verkeerd is geconfigureerd of een bug bevat. Dat is natuurlijk niet helemaal legaal, maar laten we dat even buiten beschouwing laten als het toch een geintje is.

    Misschien zijn sommigen van jullie wel bekent met Selenium. Selenium is een tool waarmee geautomatiseerde testen kunnen worden gemaakt voor webapplicaties. Met selenium kun je remote, vanuit Java maar ook vanuit PHP, de webbrowser aansturen. Deze webbrowser kan zowel Firefox, Chrome als Internet Explorer zijn.


    Selenium heb ik al vaker gebruikt om geautomatiseerd te testen, maar dat is natuurlijk niet de enigste mogelijke toepassing. Zo heb ik nu Selenium ingezet om het uploaden van nieuwe plugins voor ICTScripters te automatiseren zodat ik sneller kan testen en dus sneller kan ontwikkelen. En dit werkt perfect! Selenium start een browser op (mijn keuze is gevallen op Firefox) en logt in op het administratie paneel. Vervolgens wordt de plugin verwijderd (als deze bestaat) en daarna opnieuw geüpload en geïnstalleerd.


    Hoe kijken jullie aan tegen geautomatiseerde systeemtesten? En hebben jullie wel eens een tool als Selenium gebruikt voor geautomatiseerde testen of iets anders?

    Beste leden,


    Zoals jullie misschien al zagen zijn de codeblokken aangepast. Inmiddels is het mogelijk de blokken in te klappen en de inhoud ervan te selecteren (codeblokken zien er niet goed uit? Doe dan even een Ctrl+R).


    Geen bijzondere wijziging, maar toch meld ik het even omdat ik hiermee ook wil aangeven dat ik vanaf nu zal mee ontwikkelen aan ICTScripters. En met ondersteuning van de andere ontwikkelaars moet dat helemaal goed komen!


    Groeten,


    Stefan

    Je hebt niets aangepast? Je hebt alles zorgvuldig vertaald naar het nederlands, zelfs het commentaar. Sorry, maar ik vind dit echt een trieste bedoening. Vooral omdat je met je leuke verhaaltjes er nog onderuit probeert te komen ook. Je beseft je wel dat je hier nooit meer iets kunt verkopen neem ik aan?

    Toch nog even terug, want ik vind het alles behalve offtopic. Allereerst is het is procedureel programmeren, en niet alle varianten daarop die ik voorbij zie komen, maar dat terzijde. Object georienteerd programmeren is een manier van programmeren. Een manier van programmeren heeft altijd zijn voor en nadelen, zo heeft procedureel programmeren andere voor- en nadelen en toepassingen als object georienteerd of functioneel programmeren.


    Het leren van object georienteerd programmeren is goed te doen, maar vereist wel een andere manier van denken dan bij procedureel programmeren. Anders gaan je je classes gebruiken als functiebibliotheken wat niet de bedoeling is. Procedureel is makkelijker aan te leren, maar voor webapplicaties biedt object georienteerd programmeren voordelen zoals een betere testbaarheid, herbruikbaarheid van code (vooral binnen dezelfde applicatie) en onderhoudbaarheid.


    Als je webapplicaties of websites wilt gaan maken, leer dan eerst HTML en CSS. Daarna kun je ervoor kiezen verder te gaan met PHP, en of je dat op dat moment object georiënteerd of procedureel doet maakt niet zo gek veel uit naar mijn inzien. Goed programmeren komt later wel.