All posts by Tor Håkon Haugen

Maps, activation codes and server-side validation

If you skip server-side validation, someone will eventually find out. Hi, I’m someone, and this is a story about why you should think about server-side validation.


Story time

In July 2013, I bought a new, previously owned, Volvo V60. As part of the deal, the dealership included the latest map update. So, I left the dealership with the car and a box containing not one, not two, but three DVDs. Each that would spend hours in the DVD tray while updating the maps.

Now, these DVDs were probably dime a dozen. You could buy them used on the Internet, pick them up at any Volvo dealership and I would not be surprised if they were available for download from the Internet as well. So, to prevent piracy, you had to type in an activation code when starting the upgrade progress. But wait – then everyone with an activation code could sell their DVDs and the code to the next person once they had updated their maps? Well, no. You see, the activation code only worked on your car.

Getting the activation code

The way you got your activation code was simple: you would visit a web site, type in your vehicle identification number (VIN for short) and a drop-down list would show the part number for the maps you had the right to use. I mean, you could literally type in any valid VIN for that brand and model series and see what map options they had. You could even request their activation code sent to your email address. Now that is user friendly.

So, the activation code only worked with the correct combination of map number and VIN. However, when I entered my VIN, the part number for my DVDs did not show up in the drop-down. A few others appeared, presumably already installed by the previous owner.

Apparently, the company selling the maps had not yet received the order from the dealership. This was late Friday afternoon, if I recall correctly, so contacting the dealership would have to wait … but then I thought, what if I change the options in the drop-down list? It cannot be that easy? Surly they would validate the input, check it against their database one more time before sending out an activation key?

You already know the answer; I opened developer tools and changed the product to match the one I had. I pressed submit and a few moments later, voila! You got mail!

“Dear Valued Volvo Driver, […] Here is your activation code.”

Would you look at that. It was almost too easy. So, just to confirm, I found another number on the Internet and, once again, I received an email with a new activation code.

So, here you have a service that gives you a list of choices, and they do not even check if you have selected within that range. That is just lazy.

In the end, I could have saved me the trouble; after the weekend, the part number automatically appeared in the drop-down list, and a year or so later, Volvo put the maps on the Internet for free. All you had to do was download them to a USB stick and plug it into your car. Well, you also had to upgrade your navigation system to remove the need for an activation code, for a small fee, of course.

Doing the right thing

I reported the bug to the company responsible for the map service, but I never heard back from them. Since this service no longer exists, I think it is okay to share this story. I did not break any rules, from my point of view, but I can see how this could have been abused.

To be honest, for a split second, I was thinking about sampling a few VINs, note down the map options and crossmatch them to generate a lot of activation codes, which I then could try to figure out how the code generation worked. But that would have been crossing a line.

So, the takeaway is this: Do not trust the client-side, always do server-side validation.

I don’t keep bookmarks, I keep tabs

Ever since browsers added tabs – and the ability to restore them on start up – I’ve been using them almost religiously. Bookmarks, on the other hand, was never my thing. And while I do have them, 219 to be precise, I don’t use them. They are out of sight, whereas my tabs aren’t.

Right now, I have 30 tabs open in Chrome (I just closed four to tidy up a bit) and 26 in Edge. I have kind of a system, with emphasis on “kind of”, where Edge is used for work-related sites that require login and Chrome is used for (almost) everything else.

Tabs are like to-do lists, ever-growing and mostly ignored.

So, to close a few – and at the same time expose some of my various interests – I will post some of them here. That way I can close a few tabs, keeping just this page open instead.

(I see the irony, no need to point out that this will end up as a glorified bookmark)


On Corona

All I need to know about the corona situation in Norway (in Norwegian). This page is gold if you like graphs and statistics. It’s also an exception to my general rule of not reading VG (it’s a tabloid newspaper after all).


On security and cloud (advent calendar 2020)

You would assume it was possible to read one article per day during December – this was an advent calendar after all – yet it didn’t happen. I never got around to reading any of them. Not one. I’ll might get to them, eventually, once they are outdated.


On learning Vim

I use Vim as my coding editor, for the most part – I’ve written about it before (in Norwegian). My plan is to read these guides some rainy day, so it could be any day now, according to the forecast. Could even be today.


On programming

Reading material or just for reference; I don’t know yet, but I still kept them around.


On stories

The name of this site should be self-explanatory.


On Linux productivity

I use Linux – maybe I could learn a new trick or two. Or maybe I’ll just pretend I’ll find the time to read 89 pages on various Linux tools I’ll never use again.


On algorithms

Algorithms, they are all around us, might as well learn a few. The fact that this site contains 26 e-books – one in what I assume is Chinese – didn’t stop me from keeping it in a tab for months. But will I ever read one of them? Will you? Let me know in the comments section.


On ports and pools

Network ports and connection pools, that is. Obviously work related … I don’t have a pool.


On calculus

What is it? Let’s find out … another day.


On the Internet

It’s no secret: I miss the old Internet, or at least the idea of the old Internet.


There you have it: 16 tabs I can close, pretending I will read them later – just like I’ll pretend to clean up my bookmarks.

Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future

Elon Musk in front of a SpaceX Dragon capsule
“OnInnovation Interview: Elon Musk” by OnInnovation is licensed under CC BY-ND 2.0

Ashlee Vance har skrevet en bok om Elon Musk (2015) — og jeg har lest den.

Elon Musk er mest kjent som mannen bak både bilprodusenten Tesla og romfartsorganisasjonen SpaceX. Boken tar for seg — i all hovedsak — disse 6 områdene:

De viktigste læringspunktene

De viktigste poengene jeg har trukket ut av boken er:

  • Musk tror på det han gjør — og han går “all in”.
  • Les mye, det er en enkel måte å lære på
  • Prøv å forstå det grunnleggende og bygg videre på kunnskapen.
  • SpaceXs mål er ikke å tjene mest mulig penger — men tjene nok til å realisere målet om å kolonisere planeten Mars. Alt handler om å nå denne visjonen.
  • Musk vil ikke miste kontrollen fordi han er redd andre eiere vil prioritere økonomisk gevinst.
  • De fleste produsenter er ikke interessert i ekte innovasjon, men å redusere risiko og tilby små forbedringer over (relativ lang) tid.
  • Etablerte bedrifter er for byråkratiske til å gjennomføre store endringer.
  • Musk forstår at selv om noe “alltid har blitt gjort sånt”, så betyr det ikke at det er den eneste (eller beste) måten å gjøre noe på.
  • Musk spør ansatte om hva de gjør for å tilegne seg deres kunnskap.
  • Sett mål som gjerne er 10x dagens bransjestandard og jobb hardt for å nå det. Om du ikke når målet så kan du likevel hatt en fremgang på 3x eller 4x enn alle andre.

Mine tanker: Tenk stort. Ikke la deg begrense av “etablerte normer”. Forstå hva du driver med.

Elon Musk er en “serieentreprenør” — hvor han tidligere kunne avfeies som en litt eksentrisk fyr som var heldig med Zip2 og X.com/PayPal, så er det klart at han faktisk vet hva han driver med. Men hadde Tesla og SpaceX gått tom for penger (noe som var en reell fare) så ville vi sannsynligvis husket han annerledes.

Vertikal integrasjon

På mange måter har Elon Musk benyttet seg av vertikal integrasjon. Produksjonsteknikker i SpaceX kan nyttiggjøres i Tesla og omvendt. Teknologien til Solar City med solceller og batterier hjelper til med strømproduksjon til Teslas ladenett.

Elon Musks prosjekter

X.com (PayPal)

  • X.com — Bank på Internett før Internett var “voksent”
  • Møtte stor motstand fra etablerte og fra regulativer.
  • Slo seg sammen med PayPal og senere endret navn til PayPal
  • Musk ble erstattet av Peter Thiel som CEO mens han var på ferie

Tesla

  • De fleste bilprodusenter kjøper deler fra andre bedrifter. De fleste biler ganske like, og dermed også “immune” mot store forandringer. Å oppdatere elektronikk og styringssystemene i bilen kan ta år fordi det er så mange aktører involvert.
  • Tesla har (av nødvendighet) lært å produsere det meste selv, og utrolig nok funnet ut at dette på sikt er både billigere og bedre.
  • Elon så på komponentsammensetningen i et batteri og fant ut at summen av elementene var mye billigere enn hva batterier ble solgt for og konkluderte med at det burde være mulig å produsere mye billigere batteri. (ref. forstå det grunnleggende, ikke ta noe for gitt — first principle thinking)
  • Tok en stor risiko ved å bygge ut Teslas ladenett i USA og senere Europa, samtidig som kundene ble lovet gratis lading. Dette ble gjort mens Tesla enda slet med å produsere og levere nok biler.

SpaceX

Mål: Kolonisere planeten Mars.

  • Observasjonen til Musk var at romfartsindustrien hadde stagnert siden månelandingen. Det var ingen driv. Ingen ambisjoner. De etablerte institusjonene handlet på gammel vane og — kanskje ikke overraskende — var utrolig konservative og holdt seg unna alt som minnet om risiko. Kanskje ikke helt unaturlig etter katastrofene med romfergene.
  • Reduser kostnader, sats på gjenbruk. Romfart er dyrt — alt som kan brukes flere ganger trekker ned den totale kostnaden.

Solar City

Startet av fetterne til Musk, med god hjelp av Musk (angivelig hans idé) — senere kjøpt av Tesla.

Interessante observasjoner:

  • Ingen andre firmaer i bransjen tilbød en ferdig løsning til sluttkunder. Du måtte selv bestille inn solceller og senere finne noen som kunne montere.
  • Ingen andre firmaervar interesserte i å dra teknologien videre, men satt på gjerdet og ventet på bedre teknologi og rimeligere priser.

Robotstøvsuger – Husarbeid som underholdning

Først prøvde den å dra frem kablene bak TV-benken. Ikke bare en gang, men gang på gang var den under TV-benken for å dra i kabelrotet. Så suste den rett ut på gangen for å tygge på en skolisse. Hvem skulle tro at en robotstøvsuger kunne være så underholdene.

Den første dagen fulgte jeg spent etter. Jeg var nysgjerrig på den, og den var nysgjerrig på verden. Min verden. Og litt etter litt dukket det opp et kart over leiligheten på telefonen min.

Mindre svevestøv

Ryddeprosjektet jeg begynte på har altså gått over i en ny fase. For når rotet forsvinner, åpenbarer støvet seg. Og støvet har hatt gode vekstvilkår. Men dette handler om mer enn bare de store hybelkaninene – det jeg virkelig vil til livs er svevestøv. Det usynlige støvet som du vanligvis bare ser i sollys, og som legger seg som et tynt lag på alle overflater.

Det var en kommentar fra en kollega som gjorde at jeg begynte å tenke seriøst på å kjøpe meg en robotstøvsuger: Nemlig at det var mye mindre støv som la seg i bokhyllene etter at han skaffet seg en slik robot. Og det er jo logisk nok: En robotstøvsuger som kjører rolig frem og tilbake langs gulvet kaster ikke opp så mye støv som det jeg gjør når jeg støvsuger.

Valg av robotstøvsuger

Her gjorde jeg kort prosess. Jeg søkte på nett og fant en test fra 2020, og valgte robotstøvsugeren som kom på andreplass. En Xiaomi Roborock S5 Max. På førsteplass lå storebroren, S6 MaxV. Forskjellen var visstnok at storebroren ikke spiser sokker, mens alle andre i testen var tilbøyelige til å tygge på alt som lå i veien.

Men med en prisforskjell på neste to og et halvt tusen var valget egentlig ganske lett. Jeg legger tross alt ikke sokkene mine på gulvet, lenger.

Robotstøvsuger på vei over en dørkarm.
“Buster” på vei over en dørterskel for å finne mer støv

Roboten har ingen problemer med å komme seg over de fleste dørlistene i leiligheten, men badegulvet kan den bare drømme om å støvsuge. Der har noen lagt lista for høyt.

Kanskje det mest overraskende er at du kan velge blant en håndfull språk som roboten kan bruke å kommunisere på. For å presisere, det mest overraskende er at du kan velge av en håndfull språk hvor halvparten er kinesisk. En robotstemme? Selvsagt. Animestemme? Jada. Babystemme? Eh, ja, faktisk.

Jeg har satt min til tysk. Føler liksom at den er mer bestemt nå. ACHTUNG! SCHNELL!

En ryddigere leilighet

En positiv effekt – bortsett fra at det er mindre støv – er at jeg nå må være flinkere til å holde gulvene fri for ting robotstøvsugere spiser når du snur ryggen til. Altså må skoene plasseres i skohylla, og sokkene (som jeg aldri legger på gulvet) kan ikke ligge på gulvet.

Området under TV-benken er satt opp som en «no-go» sone. Det samme er vaskerommet, hvor den kommer seg inn, men ikke ut igjen. Og filleryen i yttergangen er byttet ut med en dørmatte. En som ikke lar seg dytte rundt så lett.

En som derimot gladelig lar seg dytte rundt er robotstøvsugeren. Jeg håper kunstig intelligens er en god del år unna, for oppgjøres time kan bli stygt. Og her i huset vil oppgjøret komme på tysk, hvis jeg ikke har satt språket til noe annet innen den tid.

Krig og Fred i USA – og et historisk presidentvalg

For å sitere Finn Bjelke: – Det har vært litt av en uke.

Egentlig hadde jeg tenkt å skrive om noe helt annet. Men det har skjedd ting denne uken som har gjort at verden har holdt pusten. Ja, jeg sikter til bLest – Litteraturfesten i Tysvær – hvor navn som Egil Hegerberg (Bare Egil band), Gry Blekastad Almås, Erika Fatland, og Hans Olav Lahlum som sto på programmet.

Erika Fatland fortalte om sin reise i Himalaya.
Erika Fatland forteller om sin reise i Himalaya under litteraturfesten bLest.

Ja – også har det vært en ting til: Valget av ny president i USA.

President-elect Joe Biden

Joseph Robinette Biden Jr. er utropt til USAs 46. president, drøyt fire døgn etter at stemmelokalene stengte dørene. Man kan mene mye om Joe Biden, men at han blir den eldste presidenten i USAs historie kan ingen benekte.

Jeg er ikke sikker på om nok en hvit gammel mann er det rette for USA. Men alternativet til Joe Biden – Donald Trump – er også en hvit gammel mann.

Det som overrasker meg mest, er hvor mange stemmer som har gått til Trump. Mye av dette kan tilskrives kristenkonservative velgere. For selv om Trump er skilt flere ganger, og sagt og gjort ting som ikke akkurat er forenlige med bibelen, så har han vært tydelig i de kristens absolutte kjernesak: Abortspørsmålet.

I NRK podkasten Krig og Fred (04.11.2020 – Stemmene som avgjør Amerika) intervjues Janne Myrdal. Hun flyttet til USA for over 35 år siden og sitter nå som statssenator for Nord-Dakota. På spørsmål om hvilke saker som er viktig, sier hun på klingende norsk: – Olje og energi, men også abortsaken står veldig sentralt. Hun følger opp med at ikke noe er viktigere enn abortsaken.

Det er liksom noe uvant over å høre en norsk, kvinnelig stemme, snakke så tydelig om abortspørsmålet. I Norge virker det ganske fjernt. Det vanlige er å høre det tydelig av, ja, nettopp, hvite gamle menn.

Galskapen er ikke over

For mens Joe Biden ble av de store nyhetsbyråene utropt som vinner av presidentvalget, spilte Trump selv golf, mens hans advokat, Rudy Giuliani, en pressekonferanse på et hagesenter – godt plassert mellom et krematorium og en pornobutikk.

Spørsmålet nå er hvordan Trump-leiren vil reagere på resultatet. I skrivende stund har Trump ikke godtatt valgnederlaget, han har sågar gått ut og sagt at han selv vant valget.

Jeg frykter Trump kan komme med uttalelser som kan hisse opp sine kjernevelgere til å gjøre voldelige opptøyer. Og med et så splittet Amerika – hvor tross alt i overkant av 70 millioner mennesker stemte på Trump – kan det vise seg å bli ganske farlig.

For det er lite som tyder på at Trump vil gå stille ut av det hvite hus. Han er rett og slett en dårlig taper, til tross for at han faktisk har mye erfaring med å tape.

Han har også vist ganske autoritære trekk de fire årene han har sittet som president, noe jeg har skrevet om før. Så spørsmålet er hvilket handlingsrom han nå har, om noen, til å prøve å holde fast på makten.

Første kvinnelige visepresident

Kanskje det mest oppløftende med valgresultatet er Kamala Harris. Hun blir den første kvinnelige visepresidenten i USAs historie. Og ikke nok med det; hun blir også den første fargede visepresident i USA.

Jeg håper dette er det som vil bane vei for USAs første kvinnelige president. Joe Biden er som sagt gammel, og det er mulig han ikke stiller til gjenvalgt om fire år. Uansett om han sitter fire eller åtte år så har Kamala Harris nå gode kort på hånd for å bli demokratenes neste presidentkandidat.

For det er dette jeg tror er fremtiden til USA. Det er på tide å bytte ut noen av de hvite, gamle mennene, og få inn noe ungt og fargerikt. Alexandria Ocasio-Cortez er jo et navn som er på vei opp og frem.