Door Floris Luiten

Tnet Devver

Reviewvernieuwing en No More Leaks-automatisering - Development-iteratie #255

20-03-2023 • 13:37

18 Linkedin

In de afgelopen sprint hebben we verder gewerkt aan het vernieuwen van de flow voor het plaatsen van gebruikersreviews. Daarnaast zijn vanuit feedback verbeteringen op de frontpage doorgevoerd en hebben we de verwerking van de No More Leaks-data verder geautomatiseerd.

Vernieuwing gebruikersreviews

In de vorige .plan hebben we aangekondigd dat we bezig zijn om de gebruikersreviews te vernieuwen. Het formulier waarmee je een review kunt schrijven, wordt vervangen door een variant die in een slide-inoverlay wordt weergegeven, zodat het mogelijk wordt om het formulier binnen een pagina te tonen zonder dat je telkens voor het schrijven van een review wordt weggeleid van die pagina.

We hebben in de afgelopen twee weken voorbereidingen getroffen om de weergave in de slide-inoverlay mogelijk te maken. Tevens hebben we stappen gezet om het reviewformulier te vereenvoudigen. De beoordeling van het product kun je nu geven door op sterren te klikken in plaats van een slider te verschuiven. In de vorige sprint hebben we de lengte van de korte toelichting verhoogt van 50 naar 150 tekens. We hebben het nu mogelijk gemaakt om alinea's in de korte toelichting te gebruiken.

De weergave van reviews op de reviewtab van een product hebben we strak getrokken door de borders op de review weg te halen en de eindbeoordeling onder de plus- en minpunten te plaatsen.

Verbeteringen frontpage

Op de vernieuwde frontpage hebben we veel feedback gekregen in de reacties onder de aankondiging en op het forum. Naar aanleiding hiervan zijn we eerst aan de slag gegaan met het fixen van bugs, waarover we in de vorige development-iteratie ook al een update gaven. In sprint #255 hebben we nog een bug opgelost die één pixel verschil veroorzaakte in ankeilers en hebben we lazy loading geïmplementeerd. Daarnaast kregen we veel feedback dat het oude forumblokje met trending topics werd gemist. De behoefte hieraan zijn we momenteel aan het valideren in een A/B-test.

Automatisering No More Leaks

Half oktober vorig jaar activeerden we de samenwerking met het project No More Leaks op Tweakers. Hiermee beschermen we onze gebruikers voor misbruik van gelekte gegevens. We gebruikten toen de op dat moment bekende lijsten en hebben deze lijsten geïmporteerd in een lokale database, zodat we de gegevens kunnen gebruiken.

De lijst van gelekte gegevens wordt steeds aangevuld met nieuwe gegevens. Het is dus zaak om deze nieuwe lijsten weer te importeren als er een update beschikbaar is. We deden dit door de delta, het deel van de lijst met nieuwe gegevens, te downloaden op een van onze servers en daarna aan het importscript door te geven. Deze taak duurt niet lang, maar is wel een handmatige actie die een developer moet uitvoeren en die ingepland moet worden, met de kans dat het lang duurt voordat een update is doorgevoerd of dat het vergeten wordt.

De politie bood bij de start van dit project nog geen mogelijkheid om dit geautomatiseerd te kunnen downloaden. Ondertussen doen ze dat wel en daarom hebben we besloten om het downloaden en importeren te automatiseren, zodat dit volledig automatisch gaat en dus geen developertijd meer vereist of vergeten kan worden.

Omdat Tweakers vooral PHP-developers heeft, was het initiële plan om dit proces in een PHP-script te automatiseren. De delta's worden via sFTP opgehaald en moeten worden uitgepakt. Bovendien willen we alleen nieuwe delta's aan het importscript aanbieden, omdat het verwerken van reeds bekende gegevens te lang duurt. Ook moet er een manier worden bedacht om de secretkey veilig vanuit onze secretsvault door te kunnen geven aan sFTP. We kwamen uiteindelijk uit op vier tickets om dit te kunnen opleveren, niet triviaal, maar zeker niet onhaalbaar.

Uiteindelijk besloot een van onze koppige developers die vaardig is met shellscripting dat het wellicht eenvoudiger kon door een shellscript te draaien in Jenkins. Jenkins biedt al een mogelijkheid om secrets te beheren, bestanden downloaden kan via sftp -b en het importeerscript is in onze Jenkins-omgeving al te bereiken. Binnen mum van tijd was een eerste versie geschreven, en de uiteindelijke implementatie is zo'n vijftig regels code. Om de code ook voor de andere developers begrijpbaar te maken, zijn er ook nog zo'n dertig regels commentaar aan toegevoegd, waardoor het script totaal zo'n tachtig regels beslaat. Zo is de de implementatie van vier tickets in PHP, geïmplementeerd door één middag shellscript. Zo loont het om de tooling af en toe eens kritisch te bekijken.

En verder

  • Op pollpagina's werd TweakersGear in de navigatiebalk ten onrechte als actieve sitesectie getoond; dat is nu verholpen.
  • Vanuit de melding van een bug in het zoeken naar artikelen hebben we het filter op artikeltypes gereanimeerd en werkend weer beschikbaar gemaakt.

Reacties (18)

18
18
15
1
0
3
Wijzig sortering
Re "No More Leaks".

De andere grote bron van ge-pwnde logins is Troy "have I been Pwned" Hunt's "pwned passwords" database.

Deze heeft een k-anonieme API, die hetzelfde antwoord geeft als de no-more-leaks data, maar dan op de seconde actueel.

De API wordt voor 99,998% gecached door cloud flare, zodat de antwoordtijden in de enkele ms liggen.

Troy's database wordt ook live geupdatet door o.a. een FBI-api en UK-NCA-api, dus supersnel actueel.

Voordeel tov NoMoreLeaks is dat alle data aan de API-kant blijft, dus geen sftp-batches of lokale opslag meer nodig.

Voor wij twijfel heeft aan de authenticiteit, dezelfde API is ingebouwd in o.a. LastPass, 1Password, Mozilla Firefox, en een paar honderd andere websites.
Troy Hunt heeft een ijzersterke reputatie opgebouwd en integriteit bewezen.
daarbovenop is hij zeer transparant over hoe hij de data verwerkt en kiest hij bewust privacy-by-design oplossingen, zodat zelfs als hij morgen "evil" wordt, hij niets kan met de data.

Zelfs als Tweakers de API niet gaat gebruiken, is Troy's blog een leuk stukje leesvoer: hij runt de api met 166.000.000 hits/dag voor minder dan 3 dollar/dag, omdat hij bij Azure en Cloudflare in de "free tier" valt door efficiënt design.
Hier nog een grote fan van Troy Hunt, vooral door zijn open manier van communiceren icm zijn kritische houding.

We hebben bij Tweakers al 'ns eerder gekeken of we konden aansluiten bij het Have I Been Pwned project, maar daar hebben we destijds toch vanaf gezien. Met het werk dat we voor No More Leaks hebben gedaan zou het aansluiten nu eenvoudiger (en dus sneller) kunnen zijn.

Maar er zit wel een belangrijk verschil tussen de twee diensten. HIBP geeft de mogelijkheid om te zien of een wachtwoord is gelekt, bij NML kun je controleren of de combinatie met een e-mailadres en wachtwoord is gelekt. Dat is een belangrijk verschil, want een gelekte combinatie is een veel groter probleem, omdat je daarmee zou kunnen inloggen (mits 2FA niet is ingeschakeld). Met alleen een gelekt wachtwoord kun je nog niet inloggen. Gegevens die voorkomen op de lijst van NML zijn daarom een groter probleem dan op HIBP.

Wanneer NML een hit geeft, dwingen wij af dat de gebruiker zijn wachtwoord moet wijzigen als ie inlogt. Ik vraag me af of we net zo streng moeten zijn als er een hit is in de HIBP database; wellicht willen we dan alleen afdwingen dat je niet een wachtwoord kunt instellen bij registratie/wijziging dat gelekt is; en niet bij inloggen.
Als ik het goed onthouden heb draaien jullie ook op Symfony, zijn jullie bewust van deze: https://symfony.com/doc/c...tCompromisedPassword.html ?
Bedankt voor de aanvulling!

Goed punt dat de combinatie een sterke meerwaarde geeft. Helemaal mee eens dat dat een gevalletje is "Nu wijzigen!".
Wat ik me dan wel direct afvraag: doet Tweakers iets om bij een hit te checken dat de wijzigende persoon, ook de normale User is (IP check? Rate limits? Etc.), en niet een crimineel die de combinatie misbruikt?

Zoals ik de Pwnd Passwords ken, is dat inderdaad alleen een zinvolle indicator bij registeren/wijzigen, hoewel ik wel gehoord heb van websites die na login een (wegklikbare) notificatie doen dat je wachtwoord zwak is, zo van "dit is een veelvoorkomend wachtwoord, zeker weten dat je niet wilt wijzigen?"

Ik heb de No More Leaks mensen overigens kunnen bereiken, zeer vriendelijk!
Ook zij kennen HIBP, maar delen op het moment geen data, ook geen hashes.
Juridisch is het nog niet helemaal duidelijk of een hash nou wel of niet" persoonsgegeven" is onder de AVG, omdat sommige mensen best unieke, persoonlijke input gebruiken.

Daarom eerst maar binnen Europa wat ervaring verzamelen, met samenwerkening zoals deze, voordat ze wereldwijd denken.

Ik snap hun punt wel. Ook al zijn hashes in wiskundig gezien one-way, ik heb in de gezondheidszorg al best wat prachtige onderzoeken voorbij zien komen over re-identificatie met hulp van externe bronnen.

[Reactie gewijzigd door juke1349 op 24 maart 2023 18:28]

Zou er ook wat tegen gebruikersreviews die Engelstalig zijn gedaan kunnen worden? Tenslotte zijn we een Nederlandstalig forum.
Ik kom deze Engelstalige reviews wel eens tegen. Wanneer je naar hun Tweakersaccounts dan gaat kijken zijn het vaak ongebruikte accounts. Dus alleen maar gebruikt voor " gesponsorde " reviews te plaatsen. Ook bij Nederlandstalige reviews heb ik met grote regelmaat mijn bedenkingen.

Jaren geleden heb ik al eens zo'n discussie gestart met het Tweakers.net personeel en ik werd toen deels in mijn gelijkgesteld als ik de profielen kon aanleveren waarbij het duidelijk zichtbaar om gesponsorde of nep accounts ging.
Maar aan de andere kant iedereen heeft het recht om een account bij Tweakers.net aan te maken en er mee te doen wat hij wil.
Engelstalige reviews kun je hier melden zodat ze na beoordeling opgeruimd kunnen worden.

forumtopic: Meldingen 'onreine' productreviews
Het moet voor tweakers toch prima te doen zijn om engelstalige reviews te detecteren en dat intern te rapporteren ipv dat de community het ik een topic moet mikken..
There is always room for improvement zal ik maar zeggen maar deze manier van melden was bij mij bekend.
En hoe detecteer je dat eenvoudig? En welke waarde levert die inspanning op tegenover de 1001 andere wensen? Lijkt me nogal een extreem nicheprobleem waar 3 Tweakers en een paardenkop zich aan storen. Ik zou als bedrijf wel wat beters te doen hebben.
Daarnaast kregen we veel feedback dat het oude forumblokje met trending topics werd gemist. De behoefte hieraan zijn we momenteel aan het valideren in een A/B-test.
Deze test is ondertussen toch afgelopen begreep ik net in het topic?
Ja klopt, die is inmiddels gestopt. Toen de tekst geschreven werd liep die nog. ;)

[Reactie gewijzigd door ikloon op 20 maart 2023 13:51]

En is de uitkomst van de A/B test ook al gedeeld?
Ik ben wel benieuwd hoeveel hits er uit zo'n "No More Leaks" actie komen.
We zien een hit rate van rond de 1% op de inlog- en registratie-acties.
En hoeveel acties zijn dat? Anders zegt een percentage ook niets natuurlijk. ;)
Verhouding is wat mij betreft relevanter. :) Maar we hebben dagelijks zo'n 3.500 login- en registratie-acties waarop we de check doen.
Daarnaast kregen we veel feedback dat het oude forumblokje met trending topics werd gemist. De behoefte hieraan zijn we momenteel aan het valideren in een A/B-test.
Vandaar dat ik het soms wel en soms niet zag.
Daarom dat ik niet meer in een zwip naar beneden scroll, omdat ik het niet meer verwachte. Ik zie geen reden waarom men de Trending topics besluit weg te laten.

Op dit item kan niet meer gereageerd worden.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee