Lei av angrep på PHP: - Kan ikke komme på én grunn til å ikke bruke PHP

- Moderne PHP har alle strukturene du trenger for å skrive solid kode, mener Stephen Rees-Carter.

Stephen Rees-Carter tror PHPs dårlige rykte stammer fra 1990-tallet. 📸: Mattis Vaaland
Stephen Rees-Carter tror PHPs dårlige rykte stammer fra 1990-tallet. 📸: Mattis Vaaland Vis mer

- Hvis du jobber med web-applikajsoner, kan jeg ikke komme på én grunn til å ikke bruke PHP, sier australske Stephen Rees-Carter, utvikler og sikkerhetsekspert, til kode24.

Rees-Carter er en av foredragsholderne på NDC Security som denne uka ble avholdt på Clarion Hotel i Oslo.

I foredraget " In Defence of PHP" tok Rees-Carter et oppgjør med kritikken mot rammeverket, som han mener har blitt behandlet urettferdig i sikkerhetsmiljøet.

Han mener derimot at moderne PHP-apper er sikre.

Derfor hater folk PHP

PHP ble lansert i 1995, da som et lite skriptspråk, forteller Rees-Carter.

- Det ble fort populært. De tidlige versjonene, slik som PHP 3 og 4, hadde mye kraft, men ikke mange kontrollstrukturer. Det gjorde det veldig enkelt å skrive forferdelig kode, sier han.

På samme tid var også "shared hosting" både billig og utbredt.

- Alle bygget sine egne sider med PHP på shared hosting. Problemet var bare at alle fulgte lyssky veiledninger på nettet. Dette resulterte i en hel haug med sårbare søppelsider. PHP har forståelig nok et dårlig rykte fra denne tiden, sier Rees-Carter.

«PHP trenger å forsvarers så folk forstår det og ikke gjør antagelser som ikke lenger er relevante.»

Blir angrepet hele tiden

Rees-Carter trekker fram at WordPress-sider, med PHP, står bak 43 prosent av alle nettsider.

- Så WordPress er fremdeles gigantisk. Det er veldig mye sårbarheter og svakheter fra PHP 3 og 4-tiden som følge av dårlige avgjørelser. Men PHP har forandret seg så mye den gang. Det er jo det som virkelig frustrerer meg, nemlig at PHP urettferdig blir angrepet konstant, sier han til kode24.

Ifølge Rees-Carter blir ofte PHP omtalt negativt av utviklere som koder i et annet språk.

- Mange referer fremdeles til den berømte artikkelen "PHP: a fractal of bad design". Den ble skrevet for elleve år siden, og allerede da var den utdatert og halvveis feil. Nå er den helt utdatert og feil. Moderne PHP har alle strukturene du trenger for å skrive solid kode, mener Rees-Carter.

Laravel og Symfony

Ifølge Rees-Carter er moderne PHP-rammeverk som Laravel, Symfony og CodeIgnite bygget bra, godt strukturerte og har et fellesskap som bryr seg om sikkerhet.

- Du kan deploye en Laravel-side og den vil være sikker som standard. For å gjøre den sårbar må du virkelig gjøre alt du kan for å skrive usikker kode. Moderne PHP er altså virkelig sikkert, sier han.

Rees-Carter legger til at etter å ha brukt ett helt år på å undersøke sider bygget med Laravel for sårbarheter, er konklusjonen at de fleste sårbarhetene ikke er lette å utnytte.

- PHP trenger å forsvarers, så folk forstår det og ikke gjør antagelser som ikke lenger er relevante, sier han.

«Ikke baser synet ditt på et språk basert på hva du har hørt fra andre, men sjekk det ut for seg selv.»

Enkelt å komme i gang

Sammenlignet med andre språk er det lett å komme i gang med PHP og Laravel-rammeverket, mener Rees-Carter.

- Laravel inneholder en rekke "out-of-the-box"-funksjoner. For eksempel "default authentication scaffolding". Å sette opp en komplett applikasjon som gjør fakturering, autentisering og brukerbehandling, tar bare noen få timer - alt dette med noen få kommandoer, sier han.

Han legger til at Laravel-samfunnet bruker mye tid på å gjøre det enkelt å bygge ting med rammeverket.

- Sider som Laracasts lærer deg alt du trenger å vite om å skrive i PHP og Laravel, sier Rees-Carter til kode24.

- Hvorfor tror du det er så enkelt for folk å snakke ned andre språk?

- Jeg tror det skyldes ignoranse. Folk sagt negative ting om PHP over flere år. Det har bare bygget seg opp, og til slutt har folk trodd på det.

Sjekk ut språket selv

Rees-Carter mener at alle språk har sine styrker og svakheter.

- Ikke baser synet ditt på et språk basert på hva du har hørt fra andre, men sjekk det ut selv.

- Men hva er svakhetene til PHP, da?

- Mange snakker om ytelse. Ettersom hver request i PHP skaper en ny prosess, kan det lede til tregere lastetider og økt minnebruk. Fordelen med dette er at en ikke lekker informasjon mellom requestene. Du kan også bruke tredjepartsverktøy for å øke ytelsen.

Han legger også til at en av svakhetene til PHP er at språket har mye "overhead". Noe som betyr at det tar mye ressurser for å kjøre språket og rammeverket. Dette kan igjen føre til tregere lastetider og økt minnebruk.

- Hele applikasjonen må også lastes for hver ny request, noe som er mindre effektivt sammenlignet med andre språk som JavaScript. Samtidig: Det finnes måter å optimalisere PHP på og komme seg rundt disse problemene. Det er et veldig bra verktøy for web-utvikling, avslutter han.