SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
säker kodsäker kod
FOSS-sthlmFOSS-sthlm
Finns i fem - sex miljarder
enheter över hela världen
Min kod
…… i enheter hos alla som äri enheter hos alla som är
här idaghär idag
Min kod
Skriva säker kodSkriva säker kod
Säker kod är inte en tillfällighet
Sker inte av en slump, du måste jobba på det
Du behöver bry dig om det
Det är på tiden att vi alla tar tag i det här
Allt jag berättar idag vet du ju redan
Skriva
Hjälp användare använda din app eller ditt APIHjälp användare använda din app eller ditt API
Defaults!Defaults!
Dokumentera. Allt och mycket.Dokumentera. Allt och mycket.
VarningarVarningar skaska bortbort
AnvändAnvänd kommentarerkommentarer
assert()assert()
Släpp kodenSläpp koden open sourceopen source
Granska
All kodAll kod skaska granskasgranskas
KodKod skaska vara lätt att läsa och förståsvara lätt att läsa och förstås
SammaSamma kodstil överalltkodstil överallt
Commit-meddelande-mall ochCommit-meddelande-mall och kvalitetkvalitet på dempå dem
Se till att stil och mallar efterlevs!Se till att stil och mallar efterlevs!
Testa
Unit-testa
System-testa
Integrations-testa
Testa dokumentationen!
Manuella tester
Fixat en bugg? Lägg till ett test
Hamra
Valgrind, address/UB/integer sanitizersValgrind, address/UB/integer sanitizers
Statisk kod-analys (clang, Coverity, lints, …)Statisk kod-analys (clang, Coverity, lints, …)
FuzzersFuzzers
Allt det, alltid
På varje commit
På varje PR
Hela tiden
curl-projektet
>45 byggen per commit
Testar för kod-stil och indentering etc
Tusentals tester per bygge
Bygger och testar på tiotals plattformar
15 timmar CI per commit
inklusive valgrind, sanitizers, “torture”, scan-
build, OSS-Fuzz, Coverity, lgtm, codacy
Jamen...
Det där tar ju jättelång tid och är dyrt!
Det kan hända, men...
Hemskheter kommer hända!
Ingen är imun, hur mycket vi än försöker!
Agera direkt
Äg problemet
Åtgärda
Lär läxan
Annars...
SGTPH helt enkelt
SGTPH
Snygg kod
Granska
Testa
Plåga
Hantera misstagen
https://daniel.haxx.se/
Tack!
““Det ekonomiska värde som skapats iDet ekonomiska värde som skapats i
och med detta kan inte överskattas”och med detta kan inte överskattas”
License
This presentation and its contents are
licensed under the Creative Commons
Attribution 4.0 license:
http://creativecommons.org/licenses/by/4.0/

Contenu connexe

Plus de Daniel Stenberg

Plus de Daniel Stenberg (20)

Curl with rust
Curl with rustCurl with rust
Curl with rust
 
Getting started with libcurl
Getting started with libcurlGetting started with libcurl
Getting started with libcurl
 
HTTP/3 is next generation HTTP
HTTP/3 is next generation HTTPHTTP/3 is next generation HTTP
HTTP/3 is next generation HTTP
 
Landing code in curl
Landing code in curlLanding code in curl
Landing code in curl
 
Testing curl for security
Testing curl for securityTesting curl for security
Testing curl for security
 
common mistakes when using libcurl
common mistakes when using libcurlcommon mistakes when using libcurl
common mistakes when using libcurl
 
HTTP/3 in curl 2020
HTTP/3 in curl 2020HTTP/3 in curl 2020
HTTP/3 in curl 2020
 
The state of curl 2020
The state of curl 2020The state of curl 2020
The state of curl 2020
 
curl roadmap 2020
curl roadmap 2020curl roadmap 2020
curl roadmap 2020
 
curl better
curl bettercurl better
curl better
 
HTTP/3 for everyone
HTTP/3 for everyoneHTTP/3 for everyone
HTTP/3 for everyone
 
HTTP/3, QUIC and streaming
HTTP/3, QUIC and streamingHTTP/3, QUIC and streaming
HTTP/3, QUIC and streaming
 
HTTP/3 in curl
HTTP/3 in curlHTTP/3 in curl
HTTP/3 in curl
 
HTTP/3 over QUIC. All is new but still the same!
HTTP/3 over QUIC. All is new but still the same!HTTP/3 over QUIC. All is new but still the same!
HTTP/3 over QUIC. All is new but still the same!
 
Just curl it!
Just curl it!Just curl it!
Just curl it!
 
curl - a hobby project that conquered the world
curl - a hobby project that conquered the worldcurl - a hobby project that conquered the world
curl - a hobby project that conquered the world
 
Http3 fullstackfest-2019
Http3 fullstackfest-2019Http3 fullstackfest-2019
Http3 fullstackfest-2019
 
Writing safe and secure code
Writing safe and secure codeWriting safe and secure code
Writing safe and secure code
 
The state of curl 2019
The state of curl 2019The state of curl 2019
The state of curl 2019
 
DNS over HTTPS
DNS over HTTPSDNS over HTTPS
DNS over HTTPS
 

Säker kod (secure code)