Webshop bruger snedigt Javascript-krumspring for at undgå browsers https-advarsel

For at undgå en advarsel i flere moderne browsere om manglende https fandt webshop på Javascript-fidus.

Sikkerhedsmand Troy Hunt har en pudsig historie på sin blog. Den handler om kode hos en webshop, der ifølge Hunt har til formål på den ene side at forhindre, at brugeren får en browser-advarsel om manglende https på sitet, samtidig med der faktisk ikke er https på sitet.

Som flere ved, så gør flere moderne browsere opmærksom på manglende https-forbindelse i forskellige sammenhænge.

Hunt fortæller, at både Firefox og Chrome tidligere på året begyndte at advare brugeren ved login-forme uden https. Og https bør man bruge, fortæller Hunt i bloginlægget:

»You should use it. No really, if you're not HTTPS'ing all your things then you're doing it wrong. The browser vendors know this and they're increasingly holding non-compliant websites to account.«

I den forbindelse fremhæver sikkerhedsmanden et eksempel, han har fået tilsendt. Det drejer sig om en webshop, som anvender en standard online-shopping web-app.

Advarslerne fra browseren kommer først og fremmest, såfremt der optræder et input-felt af typen password. For at undgå, at browseren advarer og samtidig vise brugeren, hvad der ligner et HTML-password-felt, har webbutikken, da Hunt testede, anvendt følgende Javascript-kode.

<input id="pw" placeholder="Password" name="pw" maxlength="100" class="textbox" style="width:230px;margin-bottom:5px;" onclick="javascript:this.placeholder='';" type="textbox">

Javascriptet, der knytter sig til koden, ser således ud:

<script>
    jQuery(document).on('click', '#pw', function() {
        jQuery(this).addClass('text-security');
    })
</script>

Og CSS-koden, som Javascript'et henviser til, ser ud som følger:

.text-security {
    font-family: 'text-security-disc';
}

Resultatet af ovenstående er, at mens det for brugeren ser ud, som om login-feltet er et almindeligt password-felt - altså af den type, som kunne resultere i en browser-advarsel ved manglende https - så er der reelt tale om en almindelige HTML-textbox.

Læs også: Poul-Henning Kamp: »HTTPS-over-det-hele vil tvinge regeringerne til at reagere«

Fonten, der er anvendt i boksen, gør, at skrifttegn bliver til runde skiver - altså ikke ulig det visuelle udtryk i et password-felt.

Hunt konkluderer i sit indlæg, at der er tale om et helt bevidst forsøg på på den ene side at undgå browser-advarslen og på den anden side ikke at have https.

»This is clearly ridiculous and it didn't happen by accident either. I mean there wasn't some other design decision made and then, as a by-product, the browser security warning disappeared. This is a premeditated attempt at hiding valuable security feedback designed to protect the user.«

Troy Hunt gør herefter opmærksom på, at tricket ikke længere virker fra Chrome 62, hvor alle input-felter - altså ikke bare HTML-password-feltet - nu resulterer i en synlig besked om, at forbindelsen ikke er sikker.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (20)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Cristian Ambæk

if you're not HTTPS'ing all your things then you're doing it wrong

Det giver da ingen mening, hvis du ikke har brug for HTTPS så lad vær med at tving dine brugere til det, da det ikke giver mening at have HTTPS hvor du ikke har sensitive data der skal transmitteres mellem klient og server eller omvendt.

Det eneste du gør er lave et overhead hvor det ikke er nødvendigt.
Tænker vi at NSA følger med i vores kattebilleder og derfor har vi brug for lidt HTTPS?

I sammenhæng med denne artikel ser jeg kommentaren fra Troy Hunt som dum og ubegavet.

David Konrad

Troy Hunt er ofte god, men han er lige lovlig fordømmende her. At omstille til https kan være dyrt og meget tidskrævende - for t.ex Stackoverflow tog processen 4 år, svjh. Og vi ligger lunt i Danmark prismæssigt og implementationsmæssigt, certifikater kan være rasende dyre, og skal vedligeholdes - og det er ikke alle der bare kan knytte et LetsEncrypt til deres webhotel, som udbyderen venligt understøtter, rette nogle stier og viola (som vi kan, https uden anden udgift end knofedt).

Det virker som et kreativt forsøg på damage control. Browserne begynder at advare om siden == kunderne flygter, og hvad gør man så, hvis ikke man råder over ressourcerne eller arbejdskraften til at overgå til https i øjeblikket browserne begynder at vise advarsler? Inline CSS og type=“textbox” antyder noget hurtigt og desperat.

Det er ikke en forbrydelse ikke at bruge https, det kan bare ikke anbefales og må opfattes som et minus. Det er heller ikke en forbrydelse at forsøge at undertrykke browsernes nykker og særheder, det gør alle.

I virkeligheden er det jo nok et eksempel på det A og B hold mange har advaret omkring, ifb tvangs-httpsficeringen.

Jonas Finnemann Jensen

At omstille til https kan være dyrt og meget tidskrævende

At HTTPS er et krav, har været varslet i mange år. Det kan ikke kommer som en overraskelse. Og hvis du har skills til at lave et CSS hack, så har du også evner til skifte til HTTPS.

Alt skal på HTTPS, og det har været meget tydeligt de sidste 5 år. Vi har brug for HTTPS alle steder fordi vi skal vide at den information vi læser kommer fra det rigtige sted. Fordi alle sikkerheds lag har huller, så vores bedste forsvar er flere lag.

Året er 2017, der er ingen undskyldning for ikke at være på HTTPS.

Cristian Ambæk

Derfor er ssl i mine øjne super vigtigt i laaangt de fleste tilfælde i dag.

Nu siger artiklen jo ikke "langt de fleste" sites. Den siger ALLE sites og ALT indhold.

Og hvilken forskel gør HTTPS så for "inges katte killinger"? Der bare er en bunke statiske sider.

Ville du i denne situation være nervøs for at indholdet pludselig ikke kommer fra "inges katte killingers" hjemmeside så frem du ser noget om katte?

HTTPS på alt er for latterligt og vel kommet til fordi folk har været for uprofessionelle til at komme det på hvor det var nødvendigt.

Morten Nissen

Eneste undtagelse er muligvis casual sites uden reel indhold.
Et billede af en tilfældig kat er ssl muligvis ligegyldigt. Ligesom de indhold du kigger på.

Men så snart det her med nogen at gøre, så vil man kunne plante en falsk sandhed - som er meget mere sandsynligt en at nogen vil vide hvilken farve kat du fortrækker.

Det er egentligt de samme grundlæggende (manglende) tanker det er årsagen til vi i dag sloges så meget med spam osv.

Jeppe B. Vennekilde

Det virker som om der er flere her der har en snævre forståelse for hvorfor HTTPS er vigtig og burde anvendes på alle hjemmesider

HTTPS bør ikke kun anvendes på sider der omhandler personlige eller andre sensitive information som kreditkort etc.

HTTPS beskytter ikke kun mod at andre kan læse det du/hjemmeside sender.
HTTPS beskytter også imod at andre kan ændre det du/hemmesiden sender

Det er vigtigt selv for en hjemmeside som kun viser dig nuttede killinger, da uden HTTPS kan en angriber udføre et Man in the Middle attack på nuttedekillinger.dk og fuldstændig ændre indholdet.
Jeg tror de fleste af jer har en ide om hvad man kan gøre, hvis man har fuld kontrol over hvad en hjemmeside viser
- Malware gennem bugs i JS, Flash, Browser specific, etc.
- Beder dig om at installere den nyeste app inden for nuttede killinger
- Bruger store mængder af brugerens browser's resources (DDOS, crypto-mining, etc)
- Begynder at fylde nuttedekillinger.dk med irriterende reklamer
- Og meget mere

Alt sammen fordi der mangler et S i HTTP på http://nuttedekillinger.dk

David Konrad

Nu er det jo Troy Hunt der tuder :) Forklaringen kan i øvrigt findes i kommentarsporet :

Customer Support: There are about 300 domains (out of 8,000) that are running on the platform through a single IIS record that matches the domain to the site record and then builds the site according to that variable. SANs only allow up to 100 domains, so we can't use one of those, unfortunately. We are in the process of upgrading the entire platform and running it on different architecture, which will make it easier / possible to do.

Ser ud som en ret kompleks udfordring der berører mange lag, fra platform hvis ikke ligefrem hardware) over deres setup / arkitektoniske koncept med alle dets implikationer (der skal nok tænkes helt forfra) til indholdet, hvor (gætter jeg) de har titusindvis af interne stier, links og krydsreferencer mellem deres sites, hardcodede såvel som dynamisk genererede, og så skal der vist lige ses på et redirect eller 2, de kommer nok også til at miste en hel del søgehistorik der går tabt mellem http og https. Hvert delproblem kan være potentielt ødelæggende for deres forretning, hvis ikke det løses tilfredsstillende.

Gad vide hvor mange af t.ex V2's læsere der kunne fikse den over night, imho et kompleksitetsniveau eller to over “CSS hacks” :)

Jeg mener også SSL / https er et “krav”, dvs i forbindelse med de ting jeg selv udvikler på og bruger af services på nettet; der er vel næppe længere nogen i Danmark der kunne finde på at levere andet.

Alt skal på HTTPS, og det har været meget tydeligt de sidste 5 år. Vi har brug for HTTPS alle steder fordi vi skal vide at den information vi læser kommer fra det rigtige sted. Fordi alle sikkerheds lag har huller, så vores bedste forsvar er flere lag.

Ja, det er f.eks komplet uforståeligt og højst kritisabelt at politiken.dk og jyllands-posten.dk kører uden SSL. Hvorfor er ingen efter dem, version2? :) Men at alt og alle “skal på https” eller det ligefrem er et “krav” man med rimelighed kan presse ned over hovedet på enhver tredje part er et holdningsspørgsmål. Hverken din eller min sikkerhed bliver berørt af, om ShopCity bruger certifikater eller ej (jeg gætter du ikke er kunde) men det er et mega problem for ShopCity og deres kunder, der i øvrigt bare kan stemme med fødderne (som browserne nudger dem til) ikke et problem for mig og andre ikke-interessenter eller sikkerheden generelt. Og at pege fingre af fiskeklubbens hjemmeside fra 2009, der alligevel ikke rummer brugerinteraktion, eller siden med billederne fra moster Gerdas guldbryllup giver ikke rigtig nogen mening. Konstruerede argumenter såsom at medarbejdere risikerer at afsløre sygdom over for deres arbejdsgiver, hvis de besøger ikke-beskyttede hjemmesider med sundhedsartikler handler primært om privacy og adfærd; i samme ånd kunne man forlange blanke avisforsider og bøger uden titel, så arbejdsgiveren ikke kan se hvad man læser i frokosten, sikkerhed handler det ikke om.

På sigt kommer “alt” på https, alene af den grund at det er nødvendigt for at internettets økosystem af services kan hænge sammen, så det er https eller the highway, uanset hvad. Men ingen skam på retrosider der blot er et "hjem" for noget info eller indhold, det gør ingen verdens forskel.

Cristian Ambæk

Har du fuldstændig tillid til alle led i kæden mellem dig og "Inges Kattekillinger"? Det bør du ikke.

Har jeg fuldstændig tillid til min ISP, TLD (.dk) og webserveren jeg beder om data fra.... pfff det kommer vel an på hvad jeg leder efter og hvem jeg tænker der kan være interesseret i hvad jeg søger. Tror jeg som udgangspunkt at jeg er blevet inficeret med kode under transit eller at siden jeg kigger på IKKE er whatever.dk? Nej det tror jeg ikke.

Det vil sige at du ikke stoler på disse tre led, samt eventuelle ISP'er du skal krydse?

Det virker paranoidt langt over rimelig grund at man skal have HTTPS for at undgå code injection eller falske sandheder der MÅSKE er på en side.

For code injection kan du sagtens få selvom at du benytter HTTPS og falske nyheder er også nemt at få plantet på en webserver, som så igen gør HTTPS fuldstændig nytteløs.

Hvis du har interesse i virkelig at få plantet flaske nyheder ved X, tro mig så er HTTPS da langt din største bekymring.

Og hvad med de firmaer der implementerer deres HTTPS / certifikat forkert, med for lav sikkerhed, SHA1 eller som har blind tro til deres CA? Og hvor ofte tjekker de deres certifikat efterfølgende for om det stadig er fjong?

Er det code injection fra? Din browser, mellem dig og din router eller i transit du er nervøs for?

Disse argumenter indtil videre i denne tråd har da intet at gøre med HTTPS (løser alt) men alt at gøre med mennesker som ikke er kritiske for hvad de ser, læser og derefter tjekker fra mere end 1 kilde.

Cristian Ambæk

Hvis du har interesse i virkelig at få plantet flaske nyheder ved X, tro mig så er HTTPS da langt din største bekymring.

Der blev lige multitasket lidt for meget der, men jeg er sikker der vides hvad jeg mener.

Jeppe B. Vennekilde

For code injection kan du sagtens få selvom at du benytter HTTPS og falske nyheder er også nemt at få plantet på en webserver, som så igen gør HTTPS fuldstændig nytteløs.

Ligesom den sikreste webserver er nyttesløs uden HTTPS

Din sikkerhed er kun så god som dit svageste led og argumentet at HTTPS er ubrugeligt fordi din webserver ikke er korrekt sat op, er et dårligt argument for hvorfor HTTPS ikke er nødvendigt

Dog er det nemmere at udnytte en kompromitteret webserver end en hjemmeside uden HTTPS, så meget vil jeg give dig

Og hvad med de firmaer der implementerer deres HTTPS / certifikat forkert, med for lav sikkerhed, SHA1 eller som har blind tro til deres CA? Og hvor ofte tjekker de deres certifikat efterfølgende for om det stadig er fjong?

HTTPS er ikke perfekt, specielt ikke med hensyn til dårlige CA's, men det er langt bedre end ingenting og de værste bliver fjernet fra listen over trusted CA's.

Med hensyn til outdated certificates, så er det jo noget som browsere vil blive opdateret til at advare imod, hvorved din hjemmeside ikke længere vil have den fine grønne hængelås, men i stedet advare brugeren om at der er et problem. https://www.bleepingcomputer.com/news/security/google-to-show-errors-for...

Forasten så er argumentet med at fordi du har sat HTTPS dårligt op, så er HTTPS ubrugeligt, ikke et særlig godt et...

Baldur Norddahl

I fredstid sender krigsskibe breve til soldaternes familie og dummy beskeder med højeste niveau af kryptering. Formålet med det er at fjenden ikke skal kunne aflure et kommende angreb alene ved at observere trafikmængden.

Den bedste måde at sikre at alt det rigtige bliver krypteret er at kryptere det hele. Browseren kan ikke vide om dette bare er kattebilleder eller statshemmeligheder. Vi forlanger https på det hele, så at hellere ingen andre kan vide det.

Magni Hansen

Jeg ser det, som om Google og browser leverandørene "tvinger" HTTPS protokollen ned over websites, hvor Google endda giver en gulerod ved en bedre placeringer i søgeresultaterne, som mange websites er dybt afhængig af. Https har indtil oktober i år altid været fakultativt, så hvorfor ændre dette.
At nogen "snyder" med password felterne er helt klart ikke i orden. Forstår at de forsøger at "snyde", da de kan og endda har muligheden for at spare på hosting omkostningerne.
Synes bare ikke, det skal være Google og browser leverandørernes ansvar, at oplyse forbrugeren om dette. Det er meget effektivere at oplyse dette gennem diverse medier, f.eks. Trustpilot eller Facebook.

David Konrad

Man må æde et par downvotes i sig, når man sådan forholder sig til den praktiske virkelighed :) Det slog mig jeg havde glemt ku.dk, dvs. Københavns Universitet med sine +400.000 undersider, der mig bekendt er Danmarks største site. Et eller andet sted må Science-IT & co være dybt åndssvage siden de er uenige med tastaturkrigerne her på V2, eller også er det bare en super kompleks opgave at httpsificere et mangegrenet uhyre som *.ku.dk. Men de må så bare tage en tudekiks, kan jeg forstå - undskyldninger findes der jo ingen af. Branchen er til tider lige lovlig kvasireligiøs.

Leif Neland

Når Chrome nu gerne vil have alt krypteret, hvorfor har de så gjort det så besværligt at se certifikatet?

Tidligere kunne man klikke på nøglen og se info.

Nu skal man trykke ctrl-skift-I, vælge fanebladet "Security" og så "View certificate"

Tungt...

Log ind eller Opret konto for at kommentere
Brugerundersøgelse Version2
maximize minimize