<?xml version="1.0"?><rss version="2.0">
    <channel>
        <title>dvikan.no</title>
        <link>https://dvikan.no</link>
        <description></description>
                <item>
            <title>Solving supply chain attacks</title>
            <pubDate>Tue, 26 Apr 2022 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/solving-supply-chain-attacks</link>
            <guid>https://dvikan.no/solving-supply-chain-attacks</guid>
            <description>Throwing out my thoughts on this subject.

A supply chain attack is when third-party software contains malware.

All the following operations can potentially compromise a machine:

* `apt upgrade`
* `pip update`
* `npm update`
* `brew update`
* `cargo update`
* `yarn update`
* `gem update`
* `composer update`

The following ideas depends on the threat model. There are no solutions, only tradeoffs.

## Library splitting by complexity

Most projects do not need a general-purpose http client.
Often</description>
        </item>
                <item>
            <title>Building and deploying PHP applications - PART ONE</title>
            <pubDate>Wed, 27 May 2020 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/building-and-deploying-php-applications-1</link>
            <guid>https://dvikan.no/building-and-deploying-php-applications-1</guid>
            <description>*PART ONE*

Let&#039;s reinvent the wheel for educational purposes. It&#039;s useful to know how
e.g. Jenkins etc. works under the hood.

Our goal is to build and deploy a PHP application using simple tools.

Requirements:

* Create a build
* Deploy build
* Two environments: `test` and `prod`
* Automatic build and deploy once a day

## The server

Let&#039;s start from a fresh ubuntu 18.04 digital ocean droplet. Its hostname is `ubuntu` and its 
ip address is `104.248.169.147`.

Add an entry to `~/.ssh/config`</description>
        </item>
                <item>
            <title>Leie vs eie primærbolig</title>
            <pubDate>Fri, 24 Apr 2020 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/bolig</link>
            <guid>https://dvikan.no/bolig</guid>
            <description>*UTKAST*

Å eie sin primærbolig har mange fordeler:

* Du tvinges til langsiktig sparing
* Stabil geografisk forankring
* Oppussing som hobby

Men dette blogginnlegget handler ikke om *det*.

Dette blogginnlegget undersøker hva som er mest finansielt lønnsomt av å eie eller leie bolig
dersom vi justerer for lik månedlig utgift og plasserer differensen i et globalt indeksfond.
I tillegg antar vi at også egenkapital plasseres i et globalt indeksfond.

For å finne ut hvilket alternativ som er mest </description>
        </item>
                <item>
            <title>Fra hullkort til Gigabytes</title>
            <pubDate>Thu, 05 Dec 2019 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/hullkort</link>
            <guid>https://dvikan.no/hullkort</guid>
            <description>*Skrevet av Thorbjørn Moberg*


Regnemaskiner hadde man hatt lenge, helt fra abakus/kulerammens tid. Allerede i 1650 bygget franske Blaise Pascal en mekanisk kalkulator som utførte addisjon og subtraksjon. 

                                                                                         
![En effektiv kuleramme](/blogimages/kuleramme.jpg)
*En effektiv kuleramme*

![](/blogimages/blaise.jpg)
*Blaise kalkulator*
		
I 1673 ble den forbedret av tyske von Leibniz til også å kunne utføre mult</description>
        </item>
                <item>
            <title>Legacy PHP modernisering - Erstatt new med Dependency Injection #4</title>
            <pubDate>Thu, 31 May 2018 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/legacy-php-modernisering-erstatt-new-med-dependency-injection</link>
            <guid>https://dvikan.no/legacy-php-modernisering-erstatt-new-med-dependency-injection</guid>
            <description>new operatoren brukes til å instansiere objekter. Dependency Injection (DI) betyr at man stapper inn avhengigheter i konstruktør, klasse eller felt.

Her er et eksempel som ikke bruker Dependency Injection:

	&lt;?php

	class Markdown
	{
		function compile($markdown)
		{
			$output = new File(&#039;output.html&#039;);

			$html = $this-&gt;compileMarkdown($markdown);

			$output-&gt;write($html);
		}

		function compileMarkdown($markdown)
		{
			// Kompileringskode...
			return &#039;&lt;h1&gt;hello world&lt;/h1&gt;&#039;;
		}
	}

	cla</description>
        </item>
                <item>
            <title>Legacy PHP modernisering - Erstatt global med Dependency Injection #3</title>
            <pubDate>Sun, 20 May 2018 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/legacy-php-modernisering-erstatt-global-med-dependency-injection</link>
            <guid>https://dvikan.no/legacy-php-modernisering-erstatt-global-med-dependency-injection</guid>
            <description>Det er veldig sannsynlig at en legacy-applikasjon har mange `global` variabler:

    &lt;?php
    
    // Globalt skop
    $config = [
        &#039;displayErrors&#039; =&gt; false
    ];
    
    class Example
    {
        function giveExample()
        {
            global $config;
    
            if($config[&#039;displayErrors&#039;]) {
                // [...]
            }
        }
    }

Nøkkelordet `global` henter variabeler fra det globale skopet. En alternativ måte er å bruke `$GLOBALS[&#039;config&#039;]`.

Hvorfor er</description>
        </item>
                <item>
            <title>Legacy PHP modernisering - Konsolidering #2</title>
            <pubDate>Sat, 19 May 2018 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/legacy-php-modernisering-konsolidering</link>
            <guid>https://dvikan.no/legacy-php-modernisering-konsolidering</guid>
            <description>Nå som vi har en klasselaster kan vi fjerne alle include kall som kun laster
klasser og funksjoner inn i minnet.

## Konsolider klasser:

1. Finn en `include()` setning som laster inn en klassedefinisjon
2. Flytt fila til `src/` slik at den plukkes opp av autolasteren
3. Fjern alle linjer i kodebasen som inkluderer den klassedefinisjonen

For å finne alle linjer som inkluderer f.eks. `User.php` bruker vi regex:

    $ ack &quot;^[ \t]*(include|include_once|require|require_once).*User\.php&quot;

## Konsol</description>
        </item>
                <item>
            <title>Legacy PHP modernisering - Autolasting #1</title>
            <pubDate>Mon, 14 May 2018 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/legacy-php-modernisering-autolasting</link>
            <guid>https://dvikan.no/legacy-php-modernisering-autolasting</guid>
            <description>En simpel definisjon på legacy applikasjon er en applikasjon du
har arvet. Den ble skrevet før du kom dit.

Andre betydninger:

* Dårlig organisert
* Vanskelig å forstå
* Vanskelig å vedlikeholde
* Vanskelig å endre
* Fravær av tester 
* Utestbar

Legacy-applikasjoner er ofte include-basert. Det vil si at `include()` brukes for lasting av funksjoner/klasser og programflyt.

Andre kjennetegn:

* Globale variabler
* Script-filer plassert i rota av web server
* En svær `functions.php`
* Spesiell lo</description>
        </item>
                <item>
            <title>Human Action</title>
            <pubDate>Wed, 28 Mar 2018 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/human-action-part-one</link>
            <guid>https://dvikan.no/human-action-part-one</guid>
            <description>*Dette er del 1 - Human Action*

Human Action er ei bok skrevet av Ludwig von Mises i 1949. Boka er et forsvar av
laizzes-faire kapitalisme basert på praxeologi, det deduktive studiet av menneskelig handling.

## FUNDAMENTALS OF HUMAN ACTION

### Purposeful Action and Animal Reaction

**Menneskelig handling** er målrettet oppførsel. 
Det særegne trekket ved handling er at en observatør tilregner mennesker **mål**.
Handling er forskjellig fra **refleks**. Hvis du legger hånda på ei varm kokeplate</description>
        </item>
                <item>
            <title>Hvordan sjekke om Wordpress installasjon er hacket</title>
            <pubDate>Mon, 04 Dec 2017 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/wordpress-hacket</link>
            <guid>https://dvikan.no/wordpress-hacket</guid>
            <description>## Undersøk nylig endrede filer

Se om det er noen mistenkelige endringer gjort de siste 10 dager

    find -mtime -10 -ls

Gitt at installasjonen ikke er oppdatert de siste 10 dager
er det mistenkelig med endrede filer. Sett bort ifra upload mappa.

## Søk etter php-filer i uploads mappa

Fordi uploads mappa typisk er skrivbar havner malware ofte her.

    find wp-content/uploads/ -iname  &#039;*.php&#039;

## Filintegritet

For å undersøke om noen av kjernefilene til wordpress-installasjonen er
blitt en</description>
        </item>
                <item>
            <title>Finn kvadratrot med Newton's metode</title>
            <pubDate>Mon, 20 Nov 2017 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/newtons-metode</link>
            <guid>https://dvikan.no/newtons-metode</guid>
            <description>![](/blogimages/isac-newton.jpg)

Hvordan beregne kvadratrota av tall? For eksempel er `7`
kvadratrota til `49`. Det fins ingen åpenbar måte å regne seg
fram til et eksakt svar.

Men vi kan komme veldig nært ved å gjette oss framover.

Hvis vi skal finne kvadratrota til `49` kan vi f.eks. starte
med `1` og beregne `1 * 1` og se hvor nærme vi treffer.

Etter hver gjetning forbedrer vi gjetningen med å plusse på
f.eks. `0.1` og beregne `1.1 * 1.1 = 1.21` osv osv
helt til differansen mellom `49` og</description>
        </item>
                <item>
            <title>Meditations (Marcus Aurelius)</title>
            <pubDate>Thu, 16 Nov 2017 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/meditations</link>
            <guid>https://dvikan.no/meditations</guid>
            <description>![](/blogimages/meditations.jpg)

Jeg har lest *Meditations* av Marcus Aurelius, oversatt av Gregory Hays.

Boka er gjennomgående melankolsk. Mye fokus på livets korte varighet.
Og håndtering av ditt sinn, dine følelser og reaksjoner.

Det utvikles en holdning om å ikke la seg påvirke av ting utenfor
din kontroll. Uansett hva som skjer er det ditt valg hvordan du vil
reagere.

Det er mye repetisjon i boka, fordi det er egentlig ikke en bok. Meditations
var Aurelius sin private samling av tekster</description>
        </item>
                <item>
            <title>Hvordan bygge docker container med nginx (archlinux)</title>
            <pubDate>Wed, 15 Nov 2017 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/docker</link>
            <guid>https://dvikan.no/docker</guid>
            <description>Installer og sett opp docker:

    pacman -Syu docker
    systemctl start docker
    usermod -aG docker dvikan
    newgrp docker # med min non-root bruker
    docker pull ubuntu:14.04
    vim Dockerfile

Min Dockerfile ser slik ut:

    FROM ubuntu:14.04
    RUN apt-get update
    RUN apt-get install -y nginx
    COPY docker/default /etc/nginx/sites-enabled/
    EXPOSE 80
    CMD [&quot;nginx&quot;, &quot;-g&quot;, &quot;daemon off;&quot;]

Kommandoen som er spesifisert sist med CMD må kjøre og ikke gå i bakgrunnen.
Ellers a</description>
        </item>
                <item>
            <title>Enkel nedtrekk meny i CSS</title>
            <pubDate>Tue, 24 Oct 2017 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/enkel-nedtrekk-meny-i-css</link>
            <guid>https://dvikan.no/enkel-nedtrekk-meny-i-css</guid>
            <description>Jeg har strevd litt med å lage en nedtrekkmeny i CSS. Forskjellige eksempler
på internett har overraskende lange CSS-regler.

Hvorfor ikke gjøre det simpelt.

## Simpelt

HTML:

    &lt;ul class=&quot;dropdown&quot;&gt;
    
        Menu
    
        &lt;li&gt;
            &lt;a href=&quot;#&quot;&gt;foo&lt;/a&gt;
        &lt;/li&gt;
    
        &lt;li&gt;
            &lt;a href=&quot;#&quot;&gt;bar&lt;/a&gt;
        &lt;/li&gt;
    &lt;/ul&gt;

CSS:

    .dropdown
    {
        display: inline-block;
        padding: 0;
        list-style: none;
    }
    
    .dropdown &gt; li
    {
</description>
        </item>
                <item>
            <title>Ødeleggende effekter av priskontroll</title>
            <pubDate>Fri, 21 Jul 2017 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/priskontroll</link>
            <guid>https://dvikan.no/priskontroll</guid>
            <description>**Priskontroll** betyr at staten via forskjellige reguleringer
påvirker prisen på varer og tjenester. I fravær av priskontroll
vil prisene regulere seg selv til et balansepunkt der
**kvantitet etterspurt** er lik **kvantitet tilbudt**.

Priskontroll innføres typisk med en intensjon om å tilgjengeliggjøre
verdifulle varer til en lavere pris enn markedsprisen.

Det er ingenting mystisk med markedspriser. Priser på varer øker
dersom kvantitet etterspurt overstiger kvantitet tilbudt på
*eksisterende</description>
        </item>
                <item>
            <title>Nano database migration tool in PHP</title>
            <pubDate>Tue, 02 May 2017 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/nano-database-migration-tool-in-php</link>
            <guid>https://dvikan.no/nano-database-migration-tool-in-php</guid>
            <description>A migration tool applies changes to your database. I like to keep things simple:


    #!/usr/bin/env php
    &lt;?php
    
    require __DIR__.&#039;/../vendor/autoload.php&#039;;
    
    $dotenv = new Dotenv\Dotenv(__DIR__.&#039;/../&#039;);
    $dotenv-&gt;load();
    $dotenv-&gt;required([
        &#039;DSN&#039;,
        &#039;DATABASE_USERNAME&#039;,
        &#039;DATABASE_PASSWORD&#039;,
        &#039;MIGRATIONS_FOLDER&#039;,
    ]);
    
    $pdo = new PDO(
        getenv(&#039;DSN&#039;),
        getenv(&#039;DATABASE_USERNAME&#039;),
        getenv(&#039;DATABASE_PASSWORD&#039;)
  </description>
        </item>
                <item>
            <title>3 verktøy for tryggere ferdsel på web</title>
            <pubDate>Fri, 24 Feb 2017 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/fem-verktoy-for-tryggere-ferdsel-pa-web</link>
            <guid>https://dvikan.no/fem-verktoy-for-tryggere-ferdsel-pa-web</guid>
            <description>![Robota](/blogimages/robot.jpg)

## uBlock origin

[uBlock origin](https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/)
er ett nettlesertillegg som blokkerer annonser i din nettleser.

    Finally, an efficient blocker. Easy on CPU and memory.

## StevenBlack/hosts

StevnBlack har samlet sammen en [svær liste addresser](https://github.com/StevenBlack/hosts)
som du kan stappe inn i din hosts fil.

Lista blokkerer dns-oppslag til fakenews + gambling + porn + social.

## NoScript

[NoScr</description>
        </item>
                <item>
            <title>Effektene av statlig pristak</title>
            <pubDate>Tue, 27 Dec 2016 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/effektene-av-statlig-pristak</link>
            <guid>https://dvikan.no/effektene-av-statlig-pristak</guid>
            <description>![Roofs](/blogimages/roofs.jpg)

Det er svært sannsynlig at statlig inngripen i markedsøkonomien vil føre
til utilsiktede konsekvenser der kuren er verre enn sykdommen.

**Priskontroll** er en statlig inngripen der det tvinges igjennom priser
som er forskjellig fra markedspriser.

## Pristak

Et pristak er et pristak staten setter for en vare eller tjeneste.
En selger som prissetter over taket blir en kriminell.

Intensjonen er å holde viktige varer tilgjengelig for fattige.
For eksempel kan sta</description>
        </item>
                <item>
            <title>Diamant paradokset</title>
            <pubDate>Mon, 28 Nov 2016 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/diamant-paradokset</link>
            <guid>https://dvikan.no/diamant-paradokset</guid>
            <description>![Diamond](/blogimages/diamond.jpg)

Hvorfor verdsetter mennesker diamanter høyere enn brød
når brød åpenbart er mer nyttig enn diamanter?

Svaret er at personer verdsetter ikke abstrakte klasser av varer
men heller en konkret enhet av varen.

## Loven om marginal nytte

Varer verdsettes i forhold til dens evne til å realisere et mål.
Hver enkelt enhet av en vare verdsettes separat. Etterhvert
som dine mål nås vil du verdsette nye enheter av en vare mindre.

Marginalnytten er den verdien en ytte</description>
        </item>
                <item>
            <title>Problemer med sosialisme</title>
            <pubDate>Sun, 27 Nov 2016 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/problemer-med-sosialisme</link>
            <guid>https://dvikan.no/problemer-med-sosialisme</guid>
            <description>![Toilet](/blogimages/toilet.jpg)

**Sosialisme** er en ren kommandoøkonomi som innebærer planøkonomi.
I sosialismen er alle varer eid av staten og all
produksjon bestemmes og planlegges av statlige planleggere.

Forskjellige sosialister har teoretisert omkring nøyaktig hvordan
beslutninger skal fattes om hva som skal bli produsert.
Ved å spørre folk hva de ønsker seg og hvilke varer og tjenester
de foretrekker kan vi få en idé om hva som skal produseres.

Til syvende og sist er det statlige pla</description>
        </item>
                <item>
            <title>Grunnkurs i økonomi</title>
            <pubDate>Sat, 26 Nov 2016 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/grunnkurs-i-okonomi</link>
            <guid>https://dvikan.no/grunnkurs-i-okonomi</guid>
            <description>![Bull and bear market](/blogimages/bullbear.jpg)

Økonomi er studiet av byttehandel. Den røde tråden er **knapphet**.
Knapphet betyr at det fins en endelig mengde ressurser og at personer
har uendelige ønsker.

Den universelle sannheten at ressurser er endelige reiser
et problem vi kaller det **økonomiske problem**. Hvordan skal vi som 
samfunn beslutte hvilke produkter og tjenester vi skal produsere
med de begrensede ressursene vi har?

Økonomiens lover skal anvendes på meningsfull oppførsel. </description>
        </item>
                <item>
            <title>Økonomi på 1-2-3</title>
            <pubDate>Mon, 17 Oct 2016 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/okonomi-pa-1-2-3</link>
            <guid>https://dvikan.no/okonomi-pa-1-2-3</guid>
            <description>![Houses at night](/blogimages/houses.jpg)

Økonomistudiet kan reduseres til én læresetning: analyser umiddelbare
og langsiktige konsekvenser, ikke kun for én gruppe men for alle
grupper.

## Det knuste vindu

La oss illustrere læresetningen med et enkelt eksempel.

En pøbel kaster en murstein og knuser et vindu hos en baker.
Dette vil skape aktivitet hos en glassmester.
Hvor mye koster det å erstatte et vindu? 5000 NOK?
Hvis ingen vinduer blir knust hva vil skje med glassmestere?
Det koster 500</description>
        </item>
                <item>
            <title>Slik sikrer du din Linux-server</title>
            <pubDate>Tue, 04 Oct 2016 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/slik-sikrer-du-din-linux-server</link>
            <guid>https://dvikan.no/slik-sikrer-du-din-linux-server</guid>
            <description>![Penguin](/blogimages/penguin.png)

Du vil unngå at din Linux-server blir brutt inn i.

For å redusere risikoen for innbrudd er det
en rekke grep du kan ta.

Du må gjøre en selvstendig vurdering av hvor
mye du vil redusere risikoen. Risikoredusering har en kostnad.

Jeg tar utgangspunktet i en ny Debian 8 installasjon på
et privat nettverk.

## SSH

SSH er en protokoll for administrering av maskiner over nettverk.
Åpne konfigurasjonsfila `/etc/ssh/sshd_config` og tillat kun nøkkel-autentisering</description>
        </item>
                <item>
            <title>Nettbank sikkerhetstest 2016 (HSTS)</title>
            <pubDate>Mon, 05 Sep 2016 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/nettbank-sikkerhetstest-2016-HSTS</link>
            <guid>https://dvikan.no/nettbank-sikkerhetstest-2016-HSTS</guid>
            <description>![Rusty padlock](/blogimages/padlock.jpg)

Formålet med denne testen er å undersøke hvilke nettbanker som
benytter seg av sikkerhetsmekanismen
[HTTP Strict Transport Security](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security) (HSTS).

HSTS er en mekanisme der webservere kan instruere nettlesere om at websidene
kun skal aksesseres over TLS.

Dette for å forhindre SSL-stripping angrep, der broen fra ikke-TLS til TLS angripes.

Datagrunnlaget av banker kommer fra Wikipedia-siden
[Liste </description>
        </item>
                <item>
            <title>En verden med sterkt personvern</title>
            <pubDate>Sun, 04 Sep 2016 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/en-verden-med-sterkt-personvern</link>
            <guid>https://dvikan.no/en-verden-med-sterkt-personvern</guid>
            <description>![Binary woman](/blogimages/binary.jpg)

Forbedret teknologi for overvåking og dataprosessering truer vår
mulighet til å regulere andre folk sin tilgang på informasjon om oss.

Men en tredje teknologi jobber i motsatt retning: **asymmetrisk kryptografi**.

Det klassiske problemet er: *hvordan kommunisere med en person uten at
andre får tak i innholdet?*

**Les også:**
[Piratkopiering vil snart bli verdiløst](/piratkopiering).

Mye av vår kommunikasjonen skjer nå over kobberledninger, fiberoptikk</description>
        </item>
                <item>
            <title>Entreprenører er våre helter</title>
            <pubDate>Wed, 31 Aug 2016 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/entreprenorer-er-vare-helter</link>
            <guid>https://dvikan.no/entreprenorer-er-vare-helter</guid>
            <description>![Jumping man](/blogimages/jump.jpg)

**Entreprenørskap** kan defineres som handlinger basert på observerte muligheter
i markedet, i et forsøk på å oppnå **profitt**.
Disse handlingene inkluderer å være observant på profittmuligheter, reorganisere sine finanser,
vedlikeholde ressurser og å fullføre prosjekter til sin slutt.

**Les også:**
[Entreprenørskap og konkurranse](/entreprenorskap-og-konkurranse).

Entreprenører er heroiske karakterer i en økonomi fordi de tar **risikoen**
som er involver</description>
        </item>
                <item>
            <title>Aksjespekulering har en nyttig sosial funksjon</title>
            <pubDate>Sat, 30 Jul 2016 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/aksjespekulering-har-en-nyttig-sosial-funksjon</link>
            <guid>https://dvikan.no/aksjespekulering-har-en-nyttig-sosial-funksjon</guid>
            <description>![Stock graph](/blogimages/stock-graph.jpg)

En **aksjebørs** er en markedsplass hvor det handles aksjer. **Aksjer**
er fraksjoner av eierskap til en bedrift.
Hvis du eier 50 aksjer av Nintendo og det fins totalt 1000 aksjer, da
eier du 5% av Nintendo. Aksjeeiere har krav på eiendeler og inntekter
til bedriften.

**Les også:**
[Profitt er positivt for en markedsøkonomi](/profitt-er-bra)

Kjøp og salg av aksjer skjer på en børs som for eksempel
New York Stock Exchange. Med ny teknologi og automat</description>
        </item>
                <item>
            <title>Profitt er positivt for en markedsøkonomi</title>
            <pubDate>Mon, 16 May 2016 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/profitt-er-bra</link>
            <guid>https://dvikan.no/profitt-er-bra</guid>
            <description>![Skyline](./blogimages/skyline.jpg)

**Pengeprofitt** er positivt for en **markedsøkonomi**. Fordi det motsatte
av pengeprofitt er **pengetap**. De som er for pengetap mangler
en grunnleggende forståelse av hvordan markeder fungerer.

Sannheten er at både profitt og tap er positivt.

**Les også:**
[Tilbud og etterspørsel](/tilbud-og-ettersporsel)

Mange naive observatører av markedsøkonomien avfeier **bunnlinja**
som en tilfeldig sosial konstruksjon. De kan si ting som:

*Hvorfor skal en bedrif</description>
        </item>
                <item>
            <title>Piratkopiering vil snart bli verdiløst</title>
            <pubDate>Mon, 09 May 2016 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/piratkopiering</link>
            <guid>https://dvikan.no/piratkopiering</guid>
            <description>![ai](/blogimages/ai.jpg)

Det fins minst tre måter en forfatter av **intellektuell eiendom** (IP)
kan få betalt:

* Lovlig kontroll over tilgang
* Teknologisk kontroll over tilgang
* Ukontrollert tilgang med begrensninger

**Les også:**
[Tilbud og etterspørsel](/tilbud-og-ettersporsel)

Kopirett lover er et eksempel av det første. **Betalingsmur** er et eksempel på
det andre. Annonseinntekter fra radio og websider er et eksempel på det tredje.

IP i digital form er enkelt å kopiere. I en
verden</description>
        </item>
                <item>
            <title>Tilbud og etterspørsel</title>
            <pubDate>Sun, 10 Apr 2016 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/tilbud-og-ettersporsel</link>
            <guid>https://dvikan.no/tilbud-og-ettersporsel</guid>
            <description>![A dollar bill.](/blogimages/buysell.jpg)

**Tilbud** og **etterspørsel** er konseptuelle verktøy for å forstå verden. De er ikke
en hypotese bevist med empirisk undersøkelse. Det vil aldri komme beviser
som demonstrerer at tilbud og etterspørsel er på noen måte usant.

**Les også:**
[Entreprenørskap og konkurranse](/entreprenorskap-og-konkurranse)

Noe som kan skje i framtiden er at økonomer finner bedre **verktøy** til å 
forklare priser.

## Etterspørsel

Etterspørsel er **relasjonen** mello</description>
        </item>
                <item>
            <title>Entreprenørskap og konkurranse</title>
            <pubDate>Sun, 10 Apr 2016 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/entreprenorskap-og-konkurranse</link>
            <guid>https://dvikan.no/entreprenorskap-og-konkurranse</guid>
            <description>![Laptop](/blogimages/laptop.jpg)

**Entreprenøren** er drivkraften i en markedsøkonomi. Det er entreprenøren
som vurderer om det er noe som mangler i markedet og bestemmer
seg for å starte en bedrift eller utvikle et nytt produkt.

Entreprenøren bruker sine egne eller lånte penger fra **kapitalister**
til å ansette arbeidere, leie kontor, kjøpe strøm og varme, kjøpe utstyr og råvarer.

**Les også:**
[Arbeidsinndeling og spesialisering](/arbeidsinndeling-og-spesialisering)

Entreprenøren gir så </description>
        </item>
                <item>
            <title>Hvorfor handler folk med hverandre?</title>
            <pubDate>Sat, 09 Apr 2016 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/hvorfor-handler-folk-med-hverandre</link>
            <guid>https://dvikan.no/hvorfor-handler-folk-med-hverandre</guid>
            <description>![Trade](/blogimages/trade.jpg)

To folk som frivillig handler med hverandre forventer å **tjene**
på handelen. Hvordan er dette mulig? Noen kritikere av
kapitalisme hevder at hvis en person tjener på en handel må noen
andre **tape** på det.

**Men dette er feil**. Husk at **preferanser er subjektive**.


Tina kommer på skolen med en appelsin i matpakka. Og
Hanne kommer på skolen med et eple. Det ville ikke vært
merkelig om Tina fortrekker et eple over en appelsin
og at Hanne foretrekker en appe</description>
        </item>
                <item>
            <title>Arbeidsinndeling og spesialisering</title>
            <pubDate>Sat, 09 Apr 2016 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/arbeidsinndeling-og-spesialisering</link>
            <guid>https://dvikan.no/arbeidsinndeling-og-spesialisering</guid>
            <description>![Workers on poles](/blogimages/workers.jpg)

En pengeøkonomi muliggjør **arbeidsinndeling**. Som betyr at folk spesialiserer
seg i produksjon av varer.

**Les også:** [Bitcoin er penger](/bitcoin-er-penger)

I fravær av penger blir folk i stor grad selvforsynt og må produsere
alt de trenger selv. Da må du gro din egen mat, sy dine egne klær, 
bygge dine egne møbler og utføre boring av dine egne tenner.

En moderne sivilisasjon vil kollapse om penger skulle forsvinne.
Fordi **produktiviteten** v</description>
        </item>
                <item>
            <title>Kapitalisme forklart på norsk</title>
            <pubDate>Sun, 03 Apr 2016 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/kapitalisme</link>
            <guid>https://dvikan.no/kapitalisme</guid>
            <description>**Kapitalisme** er et økonomisk system hvor privat eiendomsrett
er implementert i lovene.

Et samfunn krever institusjoner for å etablere regler og prosedyrer
sånn at folk kan leve i fred med hverandre og unngå konflikt over
knappe ressurser.

To folk kan ikke bruke en traktor samtidig.

På den ene ekstreme siden har vi **sosialisme** der 
produksjonsvarer eies av staten. Eierskap tildeles via byråkrater
og politikere. Man yter etter evne og får etter behov.

På den andre ekstreme siden har vi *</description>
        </item>
                <item>
            <title>Økonomi forklart uten bruk av vanskelig ord</title>
            <pubDate>Sat, 26 Mar 2016 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/okonomi-forklart-uten-bruk-av-vanskelig-ord</link>
            <guid>https://dvikan.no/okonomi-forklart-uten-bruk-av-vanskelig-ord</guid>
            <description>![En øde øy](/blogimages/island.jpg)

Før vi kan analysere en markedsøkonomi med milliarder av mennesker, bør vi starte
med _én_ person. Og forstå hva som får _han_ til å tikke.

**Les også:** [5 aksiomer om menneskelig handling](/aksiomer-for-menneskelig-handling)

_Robinson Crusoe_ er en kjent novelle av Daniel Defoe. Den omhandler en person
som er strandet på en øde øy. Moderne lesere identifiserer kanskje mer
med Tom Hank&#039;s karakter i _Cast Away (2000)_.

![Tom Hanks](/blogimages/cast_away-t</description>
        </item>
                <item>
            <title>5 aksiomer om menneskelig handling</title>
            <pubDate>Tue, 16 Feb 2016 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/5-aksiomer-for-menneskelig-handling</link>
            <guid>https://dvikan.no/5-aksiomer-for-menneskelig-handling</guid>
            <description>![Spock fra star trek](/blogimages/spock.jpg)

Når vi prøver å forstå verden, skiller vi mellom meningsløs og meningsfull oppførsel.

Ved beskrivelsen av banen til en golfball bruker vi masse, fart og luftmotstand. Vi sier ikke
at golfballen _ønsket å lande der den landet_.

Betrakt banen til et fly.
Her har vi ingen problemer med å si at _piloten ønsket å unngå turbulens_.

Når vi observerer hendelser kan vi forklare dem med naturlige hendelser. Eller med
**intensjonene til en bevisst person**.</description>
        </item>
                <item>
            <title>Du vet ikke hvem som oppfant penger</title>
            <pubDate>Sun, 24 Jan 2016 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/du-vet-ikke-hvem-som-oppfant-penger</link>
            <guid>https://dvikan.no/du-vet-ikke-hvem-som-oppfant-penger</guid>
            <description>![Bunke med euro](/blogimages/euro.jpg)

Ingen person oppfant penger. Penger er en teknologi som har oppstått **spontant** på markedet.
I likhet med språk.

**Les også:** [Bitcoin er penger](/bitcoin-er-penger)

Penger er en merkelig ting. Penger er overalt. Du går i butikken og møter fremmede
mennesker som gir deg mat. Penger blir utvekslet. Hver dag går vi rundt og bytter penger mot varer og tjenester.
Og så går du på jobb, i bytte mot lønn. **Penger er den ene tingen alle bruker**.
Penger er </description>
        </item>
                <item>
            <title>Gå ikke glipp av gjensidig gevinst</title>
            <pubDate>Wed, 20 Jan 2016 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/gaa-ikke-glipp-av-gjensidig-gevinst</link>
            <guid>https://dvikan.no/gaa-ikke-glipp-av-gjensidig-gevinst</guid>
            <description>![Bunt med penger](/blogimages/coins.jpg)

En gang for lenge siden, eksisterte ikke penger.

I en markedsøkonomi uten penger skjer direkte byttehandel (barter).
De byttet vare mot vare. En tømrer vil kjøpe melk. Men melkeselgeren
ønsker ikke tømmer akkurat nå. Handel uteblir.

I en direkte-bytte økonomi, kreves **dobbelt sammentreff av behov** (double coincidence of wants)
før handel inntreffer.

En tømrer må finne en melkeselger. Melkeselgeren må samtidig ønske seg tømrer.

Oppdagelsen av to pe</description>
        </item>
                <item>
            <title>Bøker</title>
            <pubDate>Thu, 01 Jan 2015 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/books</link>
            <guid>https://dvikan.no/books</guid>
            <description>## Økonomi

[Lessons for the Young Economist](https://mises.org/library/lessons-young-economist)
(introduksjon til økonomi for unge voksne)

[How an Economy Grows and Why It Crashes](https://www.amazon.com/How-Economy-Grows-Why-Crashes/dp/047052670X) (kun de første 100 sider)

[Economics in One Lesson](https://mises.org/library/economics-one-lesson) (elementær økonomisk tankegang)
</description>
        </item>
                <item>
            <title>You should hash passwords in browser before transit</title>
            <pubDate>Fri, 28 Nov 2014 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/hashing-password-in-browser-is-smart</link>
            <guid>https://dvikan.no/hashing-password-in-browser-is-smart</guid>
            <description>I suggest that we should start hashing users&#039; passwords in the browser
before they are shipped off to the server. The reason is to prevent
leakage (e.g. in logs) and because users reuse passwords.

## Why hash in the first place?

![](/blogimages/whyunohash.jpg)

We do it to reduce the chance 
that passwords get stolen at rest. The classic example is a database leak.
Other possibilities are unfaithful sysadmin or anyone else who might
have access to the hashes.

## Is MD5 or sha512 good enough?
</description>
        </item>
                <item>
            <title>Movies I liked</title>
            <pubDate>Thu, 14 Aug 2014 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/my-favorite-movies</link>
            <guid>https://dvikan.no/my-favorite-movies</guid>
            <description>![](/blogimages/logansrun1.jpg)

* [10 Cloverfield Lane](https://www.imdb.com/title/tt1179933/) (2016)
* [Infinity Chamber](https://www.imdb.com/title/tt3839880/) (2016)
* [Europa Report](https://www.imdb.com/title/tt2051879) (2013)
* [Coherence](https://www.imdb.com/title/tt2866360) (2013)
* [Logan&#039;s Run](https://www.imdb.com/title/tt0074812) (1976)
* [Contact](https://www.imdb.com/title/tt0118884) (1997)
* [Oblivion](https://www.imdb.com/title/tt1483013) (2013)
* [Archive](https://www.imdb.com</description>
        </item>
                <item>
            <title>The smallest archlinux install guide (with full disk encryption)</title>
            <pubDate>Wed, 11 Jun 2014 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/the-smallest-archlinux-install-guide</link>
            <guid>https://dvikan.no/the-smallest-archlinux-install-guide</guid>
            <description>[Download the archlinux iso](https://www.archlinux.org/download/)

    $ dd if=/dev/zero of=/dev/sdb bs=4M
    $ dd bs=4M if=/path/to/archlinux.iso of=/dev/sdb

    $ cfdisk /dev/sda
    $ mkfs.ext4 /dev/sda1
    $ cryptsetup --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random --verify-passphrase luksFormat /dev/sda2
    $ cryptsetup luksOpen /dev/sda2 root
    $ mkfs.ext4 /dev/mapper/root
    $ mount /dev/mapper/root /mnt
    $ mkdir /mnt/boot
    $ mount /dev/sd</description>
        </item>
                <item>
            <title>3 Problems with SSL/TLS PKI</title>
            <pubDate>Wed, 21 May 2014 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/problems-with-TLS</link>
            <guid>https://dvikan.no/problems-with-TLS</guid>
            <description>## Too many certificate authorities

There are 650 organizations capable of producing signatures accepted by
your popular browsers.

## Revocation is broken

CRL and OCSP are supposed to provide revocation services. If the OCSP 
lookup times out, then browsers carry on anyway. 

## The unsafe bridge from HTTP to HTTPS

At the moment in time when a browser is redirected from non-TLS to TLS
there is a window of attack. Take a look at this response:

    curl -I http://dvikan.no/
    HTTP/1.1 301 M</description>
        </item>
                <item>
            <title>Birthday attacks</title>
            <pubDate>Sun, 18 May 2014 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/birthday-attacks</link>
            <guid>https://dvikan.no/birthday-attacks</guid>
            <description>A birthday attack tries to find collisions on cryptographic hash functions.
crc32 is not cryptographic, but it is a hash function.

The following code finds collisions easily:

    &lt;?php
    $cache = [];
    
    // 50% chance of collision after 2^16 tries
    
    foreach(range(1, 2**16) as $foo) {
        $n = rand();
        $hashsum = crc32($n);
    
        if (isset($cache[$hashsum])) {
            print &quot;Collision: crc32($n) == crc32({$cache[$hashsum]}) == $hashsum\n&quot;;
        } else {
  </description>
        </item>
                <item>
            <title>Useful unix tools herein</title>
            <pubDate>Sun, 11 May 2014 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/useful-unix-tools</link>
            <guid>https://dvikan.no/useful-unix-tools</guid>
            <description>## Toggle keyboard layout

    setxkbmap -query | grep -q &quot;layout:\s\+us&quot; &amp;&amp; setxkbmap no || setxkbmap us

## Count lines of code in .php files (using awk!)

    find src -name &#039;*.php&#039; -exec wc -l {} \; | awk &#039;{sum += $1} END {print sum}&#039;

## Useful svn stuff

    // Ignore multiple files
    svn propedit svn:ignore .

## Generate tags for php code

    ctags -f php.tags --languages=PHP -R app

## Flush ARP table

    ip -s -s neigh flush all

## Add user to group

    usermod -a -G sudo jon

##</description>
        </item>
                <item>
            <title>Paranoid security lockdown of laptop</title>
            <pubDate>Sat, 19 Apr 2014 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/paranoid-security-lockdown-of-laptop</link>
            <guid>https://dvikan.no/paranoid-security-lockdown-of-laptop</guid>
            <description>What I want to achieve is:

* Minimize damage done if laptop is stolen
* Minimize damage done if laptop is tampered with while away from it
* Minimize chance of being compromised while system is running
* Maximize chance of detection if system is compromised
* Maximize anonymity on the internet

Security is a tradeoff. Having a more secure system has costs.
This text is for those willing to incur some costs in order to be more secure.

## SSH server

Only allow your own user to login. Disable pa</description>
        </item>
                <item>
            <title>Old ntnu exams</title>
            <pubDate>Wed, 05 Feb 2014 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/old-ntnu-exams</link>
            <guid>https://dvikan.no/old-ntnu-exams</guid>
            <description>I compiled a list of 
[old ntnu exams.](/gamle-ntnu-eksamener) 
Useful for exam preparation.

Also useful is a [list of kompendier](/ntnu-studentserver/kompendier)
</description>
        </item>
                <item>
            <title>Deploy SSL or die</title>
            <pubDate>Sun, 24 Nov 2013 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/deploy-ssl-all-the-way-or-fail</link>
            <guid>https://dvikan.no/deploy-ssl-all-the-way-or-fail</guid>
            <description>*Update: [Let&#039;s Encrypt](https://letsencrypt.org/) offers free of charge TLS certificates.*

Few excuses remain not to deploy SSL on your HTTP server. Especially if
your server receives sensitive data over the internet.

For a few dollars a year you can tell your customers you care about 
security. Tell them to look for the padlock.

I acquired an SSL certificate from [StartSSL](https://www.startssl.com/) and
installed it on this blog. StartSSL is the only trusted CA which offers free SSL
certif</description>
        </item>
                <item>
            <title>The truth on HTTP GET vs HTTP POST</title>
            <pubDate>Fri, 27 Sep 2013 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/the-truth-on-http-get-vs-http-post</link>
            <guid>https://dvikan.no/the-truth-on-http-get-vs-http-post</guid>
            <description>Which one should be used for web application forms? As a rule, the HTTP
protocol defines POST for things that may have side effects, and GET
is for read only viewing.

## tls and sniffing ninjas

If an eavesdropper is able to sniff your traffic it does not make any 
difference if you use GET or POST.
The POST and GET parameters are both in plaintext inside the HTTP message.

## Browser history

GET parameters are cached in the browser history. 

## Server logging

A web server typically logs GET</description>
        </item>
                <item>
            <title>Hvordan fungerer NTNU adgangskortene</title>
            <pubDate>Thu, 29 Aug 2013 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/hvordan-fungerer-ntnu-adgangskortene</link>
            <guid>https://dvikan.no/hvordan-fungerer-ntnu-adgangskortene</guid>
            <description>![ntnu kortet](/blogimages/ntnu-card-front.png)
![ntnu kortet](/blogimages/ntnu-card-back.png)

## Kortnummer og strekkode

Nummeret `460868` er kortnummeret og er knyttet til min 
ntnu-bruker på et vis. Mitt kort er fra høsten 2009.
Jeg tipper at dette er et tall som øker med én, for hvert nye kort
som produseres. Strekkoden inneholder det samme nummeret.

## Tall nede til venstre på bakside

Tallet nede til venstre er `14818476`. Tallet befinner seg både i
magnetstripe og på 125 KHz RFID-brikk</description>
        </item>
                <item>
            <title>Let's go for domain treasure hunting!</title>
            <pubDate>Fri, 28 Jun 2013 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/lets-go-for-domain-treasure-hunting</link>
            <guid>https://dvikan.no/lets-go-for-domain-treasure-hunting</guid>
            <description>&gt; Treasure (from Greek θησαυρός – thēsauros, meaning “treasure store”,[2]
&gt; romanized as thesaurus) is a concentration of riches, often one which is 
&gt; considered lost or forgotten until being rediscovered. 

The country Iceland has the top level domain `.is`. I want to find cool
domain names such that the second level domain and the top level domain `.is`
forms a word. An example is `meningit.is`. So I went and grabbed a Norwegian
wordlist:

    $ wget https://scandinavian-keyboard.googlecode.c</description>
        </item>
                <item>
            <title>Glemt truecrypt passord</title>
            <pubDate>Tue, 22 Jan 2013 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/glemt-truecrypt-passord</link>
            <guid>https://dvikan.no/glemt-truecrypt-passord</guid>
            <description>Jeg glemte truecrypt passordet mitt. Heldigvis har jeg ingenting viktig kryptert.
La oss sjekke ut `truecrack` som bruteforcer truecrypt passord. 

Jeg husker at den første delen av passordet var `1q2w3e4r` og at den neste 
delen var et ord som fins i den norske ordboka.

Først laster jeg ned en norsk ordliste.

Deretter genererer jeg en liste som inneholder alle mulige passord på
denne formen;

    $ for pw in `cat norwegian.txt `;do echo &quot;1q2w3e4r$pw&quot;; done &gt; norwegian.tc.txt

Deretter install</description>
        </item>
                <item>
            <title>How to change time of last status change of Linux file</title>
            <pubDate>Mon, 26 Nov 2012 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/how-to-change-time-of-last-status-change-of-linux-file</link>
            <guid>https://dvikan.no/how-to-change-time-of-last-status-change-of-linux-file</guid>
            <description>Why do I want to do this? Because I tried changing it out of curiosity, and 
I could not do it, so my brain tricked me into spending some time on it.

A file has three timestamps associated with it:

    time_t    st_atime;   /* time of last access */
    time_t    st_mtime;   /* time of last modification */
    time_t    st_ctime;   /* time of last status change */

The field `st_atime` is changed by file accesses, for example, by `execve(2)`, 
`mknod(2)`, `pipe(2)`, `utime(2)` and `read(2)` (o</description>
        </item>
                <item>
            <title>Remote command execution using only wget</title>
            <pubDate>Fri, 24 Feb 2012 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/remote-command-execution-using-only-wget</link>
            <guid>https://dvikan.no/remote-command-execution-using-only-wget</guid>
            <description>I have discovered a method to get remote command execution on your machine.
To demonstrate, I first need you to fetch this google url using `wget`:

    wget -q www.google.com/support?tid=;id;#g54g23df233d

Do you see what I did there? If you didn&#039;t catch it, there is an `id` inside 
the url. 

Be careful when pasing stuff into your shell.
</description>
        </item>
                <item>
            <title>HTTP authentication demystified</title>
            <pubDate>Tue, 11 Oct 2011 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/how-to-crack-http-digest-access-authentication</link>
            <guid>https://dvikan.no/how-to-crack-http-digest-access-authentication</guid>
            <description>HTTP provides a way for clients to authenticate themselves.
Here is the [rfc](http://tools.ietf.org/html/rfc2617) for the advanced
readers.

&gt; Like Basic, Digest access authentication verifies that both parties
&gt;   to a communication know a shared secret (a password); unlike Basic,
&gt;      this verification can be done without sending the password in the
&gt;         clear, which is Basic&#039;s biggest weakness.

## Basic Authentication Scheme

If the user agent wishes to send the userid &quot;Aladdin&quot; and p</description>
        </item>
                <item>
            <title>Do you protect your logout link from CSRF?</title>
            <pubDate>Mon, 02 May 2011 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/do-you-protect-your-logout-link-from-csrf</link>
            <guid>https://dvikan.no/do-you-protect-your-logout-link-from-csrf</guid>
            <description>The logout link is vulnerable to CSRF just like any other action that has an 
effect. It&#039;s not very dangerous to be affected by a logout attack, but it 
could be annoying. Especially if a users on a forum can put HTTP links as 
their profile picture etc. Then every user would be logged out each time time
they viewed that profile picture.

    &lt;img src=&quot;http://victim/logout.php&quot;&gt;
</description>
        </item>
                <item>
            <title>XSS steals data from Firefox's password manager</title>
            <pubDate>Sat, 30 Apr 2011 00:00:00 +0200</pubDate>
            <link>https://dvikan.no/xss-steals-data-from-firefoxs-password-manager</link>
            <guid>https://dvikan.no/xss-steals-data-from-firefoxs-password-manager</guid>
            <description>When you enter data in a login form, Firefox ask if I want to save that login
for future logins. I use this feature all the time and have about 20-30 logins
saved in Firefox. Whenever I visit a site, and Firefox has login credentials 
associated with that site, Firefox automatically fills in values in to the DOM. 
This way you can simply hit submit.

1. Find xss bug.

2. Load the login form into the DOM

3. Use javascript to access the data

Usually, users are already logged in, so the login for</description>
        </item>
                <item>
            <title>Email header injections explained</title>
            <pubDate>Thu, 24 Mar 2011 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/email-header-injections-explained</link>
            <guid>https://dvikan.no/email-header-injections-explained</guid>
            <description>The principle is simple. When user input is used in different contexts, they 
mean different things. Html code means nothing in a pure ascii file. 
Sql commands mean nothing in a C compiler. And javascript means nothing in 
photshop. But if the right kind of meta characters are used in a 
spesific context, they can be highly dangerous.

One example of this is sql injections. Characters like &#039; and -- suddenly have
a big impact on the query.

The metacharacter in email header injections is the lin</description>
        </item>
                <item>
            <title>The HTTP referrer cannot be trusted</title>
            <pubDate>Thu, 27 Jan 2011 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/the-http-referrer-cannot-be-trusted</link>
            <guid>https://dvikan.no/the-http-referrer-cannot-be-trusted</guid>
            <description>The HTTP referrer can&#039;t be trusted. The same goes for all the other 
HTTP headers. Why can&#039;t you trust them? Because they are user inputs.

If you want to spoof your own browsers HTTP header you can simply edit them 
on the fly with a plugin or extension. Or you could create an HTTP connection
using a programming language.

What this means is that an HTTP connection&#039;s referrer could contain html, 
javascript, php, java, xml and so on. So if you are doing referrer logging, 
remember to only let t</description>
        </item>
                <item>
            <title>Why won't CSRF flaws go away?</title>
            <pubDate>Wed, 19 Jan 2011 00:00:00 +0100</pubDate>
            <link>https://dvikan.no/why-wont-csrf-flaws-go-away</link>
            <guid>https://dvikan.no/why-wont-csrf-flaws-go-away</guid>
            <description>csrf is short for cross site request forgery, and is an attack, where your 
browser is forced to do cross site requests. This means that if you are 
logged in to site A, code from other domains can make changes on your behalf 
to site A. Say for example that 

    index.php?action=delete&amp;id=34 

deletes a picture from your photo album. Then a simple;

    &lt;img src=&quot;http://A/index.php?action=delete&amp;id=34&quot; /&gt;

would delete the picture with id 34. Your browser sends along 
session identifiers.

I s</description>
        </item>
            </channel>
</rss>
