Gå til innhold

Glem nulldagssårbarheter – SQL-injisering er fortsatt et stort problem


Anbefalte innlegg

Videoannonse
Annonse
Gjest Slettet+5132

Hvorfor er det ikke en akseptabel unnskyldning at verktøyene skal sikre det? Det burde vel strengt tatt ha vært en selvfølge i dag?

Nå er det vel slik at verktøyene sikrer det, gitt at man bruker verktøyene. Direkte tilgang til en SQL-database innebærer alltid en viss usikkerhet, men det finnes utrolig mange biblioteker som gjør dette for deg på en sikker måte. Det samme gjelder mye javascript-kode, som hvis brukt riktig, hindrer disse mulighetene.

 

Problemet er vel heller at mange velger å finne opp hjulet på nytt, nettopp fordi det finnes utrolig mange tutorials i PHP + MySQL som kjører sql-spørringer direkte fra PHP-input...

Lenke til kommentar

Hvorfor er det ikke en akseptabel unnskyldning at verktøyene skal sikre det? Det burde vel strengt tatt ha vært en selvfølge i dag?

 

Verktøyene skal hjelpe utvikleren med å ikke gjøre feil, men ikke hindre det. F.eks. vil React sørge for at du nøster elementer riktig, og gjør escaping av innhold riktig, slik at du får generert god DOM og slipper å tenke så mye på XSS og htmlentites og sånt. React tilbyr en måte å putte inn rå, uvalidert HTML, slik at du f.eks. kan kjøre innhold gjennom en markdownparser som gir ut HTML uten å måtte mekke Reactkomponenter for dette. Denne funksjonen er bevisst gjort tungvindt å bruke

 

Det krever jo naturligvis at du faktisk bruker verktøyet, og bruker det riktig. Jeg har vært borti prosjekter hvor utviklerne har fått React til å bare rendre en div, som de senere gjør "div.innerHTML = something" på, og genererer HTML-en på egenhånd med stringkonkatenering...

 

Hvis du ikke gidder å finne ut hvordan du bruker en SQL query builder, og/eller du mener du kan gjøre en bedre jobb selv, hjelper det ikke det minste om det finnes verktøy som eliminerer alle feil. Stringkonkatenering er alltid lett tilgjengelig

Endret av Suppen
Lenke til kommentar

Jeg har vært borti prosjekter hvor utviklerne har fått React til å bare rendre en div, som de senere gjør "div.innerHTML = something" på, og genererer HTML-en på egenhånd med stringkonkatenering...

 

Dette er vel strengt tatt ikke noe problem, er det på klientsiden, så er det på klientsiden, og det verste du får gjort er å få noe annet på din egen skjerm, enten du gjør det med et gigantisk bibliotek fra Facebook eller med strenger på egen hånd. Det finnes ingen umiddelbar sikkerhetsrisiko ved å benytte innerHTML.

 

Problemet oppstår når serveren godtar, gjerne også lagrer, og sender tilbake data uten å "vaske" de først, og da hjelper det ikke stort med React, selv om React selvfølgelig luker ut en del andre problemer som kan lede til XSS.

 

Det er nesten enklere å åpne opp for XSS i React, fordi mange utviklere ikke aner hva de driver med, å ukritisk setter inn templates både her og der uten å kontrollere dataene, for det er jo så enkelt med React.

Endret av adeneo
Lenke til kommentar

Nå var det ment mer som et eksempel på hvordan verktøy hjelper deg, og hvilke holdninger som finnes som gjør at verktøyets hjelpemidler er irrelevante, med React som eksempel. Bytt ut React med hva som helst annet, og du har samme problemet, både på server- og klientside

Endret av Suppen
Lenke til kommentar

React og Angular er ikke bare frontend eksklusiv. Javascript kjøres på serveren også. Jeg tror introduksjonen av disse rammeverkene kan gi en liten opplomstring av disse gamle angrepene(som tross alt ikke har vært særlig problematisk siden glansdagene til php). .net og java baserte backends er såpass garvede nå at du må gjøre en innsats for å skrive slike sårbarheter.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...