Door Hugo: Door Anoniem: "Use after free" is echt niet het enige probleem waar je tegenaanloopt. Neem nou een taal als PHP. Prima automatisch geheugenbeheer, en toch een enorme bron van lekken. In een scripttaal, wie had dat nou gedacht?
Als je PHP een bron van lekker noemt, dan heb je de kern van het probleem niet begrepen.
"Lekke
n" want lekke
r issie niet. En hoezo? Zit ik ernaast met de analyse dan?
De kracht van PHP is meteen z'n zwakte: makkelijk te leren en eenvoudig te gebruiken. Dit trekt veel mensen aan, ook diegene die onvoldoende kennis hebben van goed en veilig programmeren. PHP is niet te bron, het zijn de gebruikers die niet weten waar ze mee bezig zijn.
Ah, Hugo, nu geef je jezelf te kennen. Je moet even dieper leren kijken. De "ontwerpers" van de "taal" PHP behoren namelijk óók tot die groep. En dat is goed te zien voor mensen die een beetje historisch besef ende ofte begrip van programmeertaalontwerp hebben.
Je "het is de schrijvert zijn schuld" kan ik net zo goed maken over C of C++. Neem alleen al de term "C/C++", wat in de praktijk betekent "halfliterate C met gebruikmaking van genoeg C++ features dat je aan een C-compiler niet genoeg hebt, maar zonder de voordelen van C++ werkelijk uit te benutten". Niet raar ook dat je die term dan ook vooral in de windows wereld terugvindt, waar de redmond "C++"-compiler lange tijd een "windows C(++)" heette te zijn--standaarden deden (en doen) ze maar heel mondjesmaat aan aldaar.
Mozilla code maakt het ook bont, door in hun code een stuk C++ opnieuw proberen uit te vinden. Niet heel gek want toen ze ermee begonnen waren er nog niet zoveel complete C++ implementaties beschikbaar. Maar opgeruimd hebben ze dat zooitje in de tussentijd ook niet.
En probeer maar eens behoorlijke documentatie te vinden over hoe hun code nu eigenlijk werkt zodat je snapt wat er gaande is. Het is heel makkelijk door de macros het grote plaatje en de valkuilen te missen.
Maar uiteindelijk is het prima veilige code in C en nog beter in C++ te schrijven... mits je weet wat je doet en je je programmeeromgeving goed opzet. Waarmee ik de structuur en de interne APIs van je programma bedoel. Dat de meeste schrijvers in deze talen daar niet toe in staat blijken, ach. Die situatie komt ons bekend voor, nietwaar?
Uiteindelijk hoef je trouwens maar door tdwtf te bladeren om te zien dat de meest vreemde en gevaarlijke constructies in ongeveer elke taal te vinden zijn, inclusief speciaal voor die minderbedeelde programmeurs ontworpen talen zoals c-hash en java en ja, ook php. Waarbij iig java door redelijk gerespecteerde ontwerpers inelkaar geklust is, met een hele filosofie en alles erbij. Zie eerder bericht over uit de zandbak ontsnappen.
Dat met PHP prima veilige websites / webapplicaties te maken zijn bewijst deze website wel!
Want ze is
gecertificeerd veilig! Jawel.