Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door Arjen van der Meijden

Lead Developer

Tweakers stapt over op https

Meer veiligheid en privacy

Mixed content

Het grootste praktische probleem met https is het concept 'mixed content'. Bij mixed content zijn er 'onveilige' elementen geladen in een 'veilige' pagina. Anders gezegd, er zitten elementen vanaf http-servers tussen. Hierbij bestaat er onderscheid tussen actieve en passieve mixed content. De lijst die gezien wordt als passief, is expliciet gespecificeerd tot onder andere plaatjes, video- en audiotags. Actieve mixed content is alle andere content die niet via https binnenkwam, zoals javascript, stylesheets, fonts, flash-files en iframes.

De passieve elementen worden door de meeste browsers alsnog getoond, hoewel ze onveilig waren geladen. Dat gaat dan wel gepaard met een indicatie dat de pagina niet goed beveiligd was. De actieve mixed content, zoals javascript en stylesheets, wordt door browsers geblokkeerd.

Met de introductie van https wilden we dat gelijk goed doen, dus geen actieve mixed content en zelfs geen passieve mixed content of simpel gezegd: overal op Tweakers een (groen) slotje in je browser.

Onze artikelen en de door gebruikers gemaakte content, zoals reacties, tweakblogs en forumtopics, bevatten doorgaans allerlei plaatjes. Bijna al die plaatjes komen vanaf http-urls. Als we niets zouden doen, zou bij al die content de 'niet veilig'-markering in browsers verschijnen.

De Pricewatch-portal vóór deze aanpassing (links, met mixed content) en erna (zonder mixed content).
Van boven naar beneden: Firefox, Chrome en Edge.

Om dat te voorkomen moesten we flink aan de slag. Om te beginnen moeten alle url's die wij genereren, in onze code met https werken. Anders krijg je onnodige redirects van http naar https en worden afbeeldingen alsnog verkeerd aangeboden. Dat was een van de makkelijkere taken.

De moeilijkste taak was het aanpassen van alle bestaande artikelen en door gebruikers gemaakte content. Daarin moesten alle afbeeldingen, video's en andere elementen worden aangepast. We hebben flink wat code moeten schrijven om alle generaties van oude content om te zetten. Een voorbeeld zijn de oude artikelen waarin YouTube-video's staan. Daarin werd vaak nog de oude flash-based player gebruikt. Die hebben we niet alleen omgezet in https, maar ook gelijk in de nieuwe methode met iframes en html5-video.

Het moeilijkste was het aanpassen van alle bestaande artikelen en door gebruikers gemaakte content

Overigens hebben we elementen van sommige heel oude of zelden gebruikte sites vervangen door een linkje naar dat specifieke element. Het kan dus zijn dat er in oude artikelen of forumposts nu linkjes staan waar voorheen video's of andere elementen ingevoegd waren.

Https-camouflage-proxy

Het meest voorkomende type mixed content is afbeeldingen. Omdat ze zo belangrijk zijn voor de gebruikerservaring, wilden we die blijven tonen, maar dan wel via https. Die afbeeldingen komen echter niet alleen van onze eigen servers, maar van duizenden verschillende webservers. We weten van veel daarvan helemaal niet of ze https ondersteunen, en het testen daarop is een tijdrovende en lastige aangelegenheid. Bovendien zou er dan alsnog een deel overblijven zonder (goed werkende) https.

We konden daarom niet zomaar van elke afbeelding in de url het stukje 'http://' vervangen door 'https://'. Om die bijbehorende afbeeldingen toch te kunnen tonen, kregen we in een discussie met onze bezoekers de tip om een proxy te gebruiken. Wij kozen uiteindelijk voor de camouflage-proxy die Github heeft ontwikkeld om hetzelfde probleem op te lossen.

Deze zorgt ervoor dat onze servers de niet-https-afbeeldingen downloaden en daarna, vanuit ons netwerk, via https doorsturen naar de gebruiker. Om te voorkomen dat we alle afbeeldingen steeds opnieuw downloaden en jullie daarop moeten wachten, worden ze een tijdje in onze eigen loadbalancers gecachet. Hopelijk zien de bronsites ons op die manier niet te veel als scraper. Die time-out kunnen we uiteraard zelf kiezen; op dit moment hebben we hem op vierentwintig uur gezet.

Voor nieuwe forumposts doen we twee dingen. Net als de controle op de hoogte en breedte van afbeeldingen, controleren we nu ook of ze via https worden aangeboden. Is dat niet het geval, dan testen we gauw even met wat javascript in je browser of het plaatje wellicht toch via https werkt. Als dat niet zo is, komt er een melding om je te wijzen op die afbeelding. Omdat we begrijpen dat niet alle afbeeldingen via https werken, kun je die melding negeren en dan zetten wij 'm alsnog automatisch om via de camouflage-proxy.

Voor andere content willen we natuurlijk nog steeds graag dat je https gebruikt, maar hadden we nog geen eenvoudig toepasbaar meldingsysteem. Daarom zal daarvoor in principe altijd de camouflage-proxy gebruikt worden als er geen sprake is van https. Uiteraard kan dit in de toekomst nog veranderen.


OnePlus 7 Pro (8GB intern) Microsoft Xbox One S All-Digital Edition LG OLED C9 Google Pixel 3a XL FIFA 19 Samsung Galaxy S10 Sony PlayStation 5 Games

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank, Intermediair en Independer de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True