Beste security dot nl posters in deze draad.
Tijdens een lange wandeling langs de wilde blauwe hyacinthen in het Belgische Hallerbos heden middag op de grens tussen het Vlaamse en Waalse land, liet ik het hele Drupal, Word Press, Magento veiligheidsverhaal nog eens goed op me inwerken en dus in het bijzonder de relatie tot PHP.
Dit om een bijdrage te kunnen leveren aan de discussie, waarmee we een handvat hebben tot deze algemene problemen. Hoe komen we verder en hoe coderen we inherent veiliger? Dat is dus onze vraag.
Check alles hieronder goed na op valide en oneigenlijke argumenten. Ik heb de wijsheid niet in pacht en leer graag, want zodoende groeit mijn kennis en het bijbehorende inzicht!
Als PHP nog enigszins gebruikt kan worden, dan is het samen met cheatsheets ernaast. Er is een Word Press Help Sheet, een Reference Sheet Basics, Smarti Cheat Sheet voor template ontwerpers, PHP Unit Cheat sheet en nog een achttal. andere cheatsheets.
PHP is echter heel vaak de blinde die de blinde leidt en vaak vallen daarna beiden in de gracht.
Voor beginners een valide punt.
Hoe schrijven we een absoluut kwetsbare applicatie?
Gebruik PHP niet voor "untrusted input". PHP code kan problematisch zijn als er exploits "in the wild" bestaan.
Maar dat geldt ook wederom voor alle ongeteste code.
PHP draait alleen als CGI, complete reinitialisatie, dus van een script na elke request.
Je weet niet wat voor SQL kwetsbaarheden er zijn en wat ze eventueerl uit kunnen richten.
XSS-DOM idem ditto.
Je moet het telkens handmatig gaan fixen.
De automatische conversie tussen strings & numbers is zo complex
dat het de inspanningen van de programmeur vaak niet loont om eraan te beginnen.
PHP is een interessant doelwit voor hackers.
Interne hacks voeren steeds weer tot fouten in de veiligheidsimplementaties.
Maar dit geldt voor alle complexe programma's. Oneigenlijk argument dus.
De lage instap en installeer Apache met mod_php, gooi de app in /var/www en
wacht op het daarop volgend wereldeinde.
Grondprobleem is niet de taal op zich maar de manier waarop het ontworpen is.
PHP heeft nooit het "classes"stadium gehaald.
Net als javascipt uit den beginne was het nog niet klaar voor op een Internet
en in een website omgeving gebruikt te worden. I
nfo credits gaan uit naar security dot stackexchange dot com
(diverse bijdragen over de inherente onveiligheid van PHP, ja of neen).
Kijk eens naar de mogelijke issues met een mogelijke op PHP gebaseerde Magento webshop site: https://www.magereport.com/scan/?s=https://www.robotshop.com/
Hier bij deze voorbeeldscan schijnt het bijzonder goed te zijn afgelopen.
Er is echter ruimte voor verbetering: https://retire.insecurity.today/#!/scan/2bf679730519bb3343a2d92b2f3d12f818b2213b9f33748af45a8a0a0e3e6e39
Even javascript hier aan de tand gevoeld
connect.facebook.net/US/fbevents.js
status: saved 39794 bytes 0f5781bbf62772f60515926378d453e071d1b598
info: [decodingLevel=0] found JavaScript
error: undefined variable fbq
error: undefined variable history
error: undefined function f.ensureModuleRegistered
,Echt we moeten meer met veiligheid op het netvlies en in het achterhoofd gaan werken, beste mensen.
Vele eindgebruikers zullen u allen hier dankbaar voor zijn.
m.vr.gr.
luntrus