client fingerprint

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front-end Angular developer

Functie In jouw rol als Front-End developer werk je samen met de backend developers om middels tweewekelijkse sprints het platform naar een hoger niveau te tillen. Hiernaast heb je affiniteit met data en werk je graag samen met het team om de gegevensintegriteit en -beveiliging te waarborgen, om ervoor te zorgen dat de gebruiker wereldwijd de beste SaaS-services heeft. Deze organisatie heeft meer dan 100 mensen in dienst, waarvan er 45 in Nederland werken. Het ontwikkelteam bestaat uit 10 mensen en is verdeeld in 2 scrumteams. Het eerste team bestaat uit Java en Scala ontwikkelaars. Het tweede team, waar jij

Bekijk vacature »

Full-stack developer

Als Full-stack developer bij KUBUS houd je je bezig met het ontwikkelen van de (web)applicatie en services van BIMcollab. Samen met je SCRUM team werk je aan zowel de front- als de back-end. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein genoeg om als individuele ontwikkelaar invloed uit te kunnen oefenen en echt het verschil te kunnen maken. Ons ontwikkelteam bestaat uit ruim 40 ontwikkelaars, testers, scrum

Bekijk vacature »

Medior Java developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Full Stack Developer/ Applicatie Ontwikkelaar

Wat jij doet Als Applicatie Ontwikkelaar ben je onderdeel van het team die de Rimote omgeving ontwikkeld en onderhoud. Hierbij kan je denk aan de cloud, on premise en webapplicaties welke worden gebruikt in bijvoorbeeld industriële bakkerijen, biogasinstallaties en kwekerijen. Deze applicaties verzorgen (remote) de aansturing en monitoring van processen, machines en robots. Van a tot z ben je betrokken bij projecten. Dit betekent vanaf ontwerp tot oplevering. Je moet samen met jouw team een goed product neer zetten. Dit begint met het opzetten van het ontwerp. De basis van de software moet staan als een huis. Daarvoor moet jij

Bekijk vacature »

Cloud Developer

Cloud Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Software Ontwikkelaar .NET te Zaandam

Bedrijfsomschrijving Je komt hier terecht bij een door-en-door softwarebedrijf, waarbinnen meerdere SaaS pakketten worden ontwikkelt voor diverse sectoren. Hierbij kun je denken aan bijvoorbeeld de logistieke en medische branche. Deze organisatie kenmerkt zich door de hoge mate van complexiteit in de applicaties, wat betekent dat jij je hier niet zal gaan vervelen. Integendeel: Jij gaat hier elke dag ontzettend veel leren en je in razend tempo ontwikkelen als C# .Net Developer met focus op back-end. Het team bestaat uit ongeveer 20 personen personen, waarvan het grootste deel zich richt op software development. De sfeer is informeel en professioneel. De producten

Bekijk vacature »

Senior .NET Ontwikkelaar

In het kort Als Senior .NET ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag met complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek (denk aan ECT) en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan

Bekijk vacature »

C#.NET developer

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Testen en valideren van de ontwikkelde software. Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je gaat aan de slag met diverse technologieën en frameworks. Denk hierbij aan C#, JS frameworks, HTML, CSS, TypeScript,

Bekijk vacature »

.NET Developer

Functie omschrijving Net afgestudeerd en op zoek naar een leuke baan als developer? Zoek niet verder! Ik heb een functie beschikbaar als back-end developer, bij een leuk familiebedrijf. Je gaat werken met de Microsoft stack en de technieken C# en .NET. Verder maak je gebruik van MVC en Entity framework. SQL kent ook geen geheimen voor jou. Jouw verantwoordelijkheden: Nieuwe maatwerk software bouwen; API koppelingen bouwen; Applicaties en software optimaliseren; Back-end programmeren. Een erg uitdagende functie, met veel vrijheid. Je kan meerdere dagen thuis werken en als je op kantoor werkt wordt de lunch verzorgd. Heb je interesse, reageer dan

Bekijk vacature »

Junior/medior Back end developer PHP, Laravel

Functie Jij als ontwikkelaar komt te werken in een team bestaande uit 4 back end programmeurs, 2 vormgevers/ Front end developers en een online marketeer. Qua persoonlijkheden is het team erg gevarieerd van sportfanaten tot gameliefhebbers en Golfers. Een ding heeft iedereen hier gemeen; Passie voor goede code. In jouw rol zul je voor veel van je tijd je bezig houden met het ontwikkelen van maatwerk features en applicaties. Daarnaast hebben wij op aanvraag ook wel eens een website of onderhoudsklusje, die opgepakt moet worden en hier ben jij ook niet vies van. Jij als full stack developer zult dus

Bekijk vacature »

Senior Front-end Developer

Wordt jij de nieuwe Front end specialist / developer? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel binnen als

Bekijk vacature »

.NET Developer

Functie De perfecte combinatie tussen techniek en vastgoed. Werk samen met de senior software developer om allerlei software van fluX te verbeteren. Gelukkig voel jij je helemaal thuis in de codewereld van .NET. Dus of je nu bezig bent met het verhogen van de conformiteitscore of het automatiseren van allerlei taxatiemodellen, jij weet precies hoe je de doelstellingen realiseert. En dat terwijl je ook samenwerkt met een extern ontwikkelteam. Waar dit team bepaalde softwaresystemen ontwikkelen, richt jij je vooral op onze Nederlands georiënteerde producten en alle wetgeving die daarbij komt kijken. Voor minimaal 32 uur per week verrijk jij onze

Bekijk vacature »

Back-end Developer

Functie omschrijving Als Back-end Developer heb je de eer om als eerste interne developer bij deze organisatie te beginnen. Op dit moment zijn er externe developers, maar daar wil de organisatie verandering in brengen. Op termijn moet de gehele afdeling uit intern personeel bestaan. Je kan je voorstellen dat de eerste interne developer ook de nodige kennis mee moet brengen. Dat klopt. Je gaat je namelijk aan het begin bekommeren over de externe developers en uiteindelijk over je interne collega's. Verder ga je het volgende doen: Het bedenken, beheren en onderhouden van webportalen, API-koppelingen en applicaties; Je bedenkt en werkt

Bekijk vacature »

Applicatie ontwikkelaar

Functie omschrijving Zelfstandige applicatie ontwikkelaar gezocht voor familiair bedrijf in omgeving Rotterdam! Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! Binnen deze rol houdt jij je met het volgende bezig: Onderhouden en ontwikkelen van de IT systemen; Opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werken aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkelen en implementeren van MS PowerApps

Bekijk vacature »

Software developer - C Sharp

Functie omschrijving Voor een opdrachtgever, met een prachtig kantoor in omgeving Wateringen zijn wij op zoek naar een software ontwikkelaar die graag werkt met C#, JAVA of Oracle. Heb jij interesse in het programmeren en ontwikkelen van software? En heb jij enige ervaring met Oracle databases en PL/SQL? Als software developer werk je met je collega's samen in een leuk en informeel team aan het (her)ontwerpen van bedrijfssystemen. Je houdt je bezig met het ontwikkelen van REST API's en je onderhoudt applicaties in Oracle PL/SQL en APEX. Vind jij het leuk om in een Agile/Scrum omgeving te werken? Wil jij

Bekijk vacature »
Ozzie PHP

Ozzie PHP

30/03/2014 17:33:23
Quote Anchor link
Ola,

Wat kun je allemaal gebruiken om een "fingerprint" van een client te maken?

Ik dacht aan de languages, de encoding methods en de user agent. Zijn er nog meer mogelijkheden?
 
PHP hulp

PHP hulp

15/01/2025 23:41:11
 
Ward van der Put
Moderator

Ward van der Put

30/03/2014 19:26:31
Quote Anchor link
sha1(user-agent . ip-adres)
 
Ozzie PHP

Ozzie PHP

30/03/2014 19:50:31
Quote Anchor link
Ward, een ip-adres gebruiken in de fingerprint lijkt me niet slim. Dat kan tijdens een sessie wijzigen.

Maar jij gebruikt alleen de user-agent en niet de languages en encoding types?
 
Ward van der Put
Moderator

Ward van der Put

31/03/2014 07:15:17
Quote Anchor link
Een fingerprint kan ook wijzigen: bijvoorbeeld de header User-Agent kan veranderen na de installatie van een plug-in en zelfs na de automatisch installatie van een update van een plug-in.

Maar ik heb wel eens gelezen (en kon het helaas niet terugvinden) dat op het niveau van één site alleen al de header User-Agent zó uniek is dat deze zich leent voor een persoonlijke fingerprint van elke bezoeker. Hangt er statistisch natuurlijk ook van af of je jaarlijks 10.000 unieke bezoekers of 10 miljoen unieke bezoekers hebt.
 
Ozzie PHP

Ozzie PHP

31/03/2014 12:40:51
Quote Anchor link
Ik ben er inmiddels achter dat "fingerprint" misschien een iets te zware benaming is voor wat ik wil.

Op internet zie ik namelijk scripts die via javascript en flash ook nog allerlei info van je computer halen. Bijv. welke lettertypes er allemaal op staan. En op die manier krijg je inderdaad een unieke fingerprint.

Wat ik zoek is eigenlijk iets "lichter". Ik heb nu dus een string gemaakt van de user-agent, de languages en encoding methods. Wat ik wil bereiken is dat wanneer tijdens een sessie deze string verandert, dat ik dan de sessie vernietig. Zodra deze gegevens namelijk veranderen tijdens een sessie, zou dat inhouden dat er van browser is gewisseld. En dat kan niet, dus op dat momnent gaat het vermoedelijk om een hack-poging.

Mijn enige vraag die ik nu nog heb is...

Wat is de beste manier om deze string te hashen, zodat ik hem gedurende een sessie kan controleren? Dus stel de string is (versimpeld):

$string = 'nl,en-gzip-mozilla';

Dan wil ik daar een hash van maken. Welk algoritme is daarvoor het meest geschikt? Omdat de controle bij iedere pagina-aanroep moet plaatsvinden moet het een heel snel algoritme zijn, want de client mag er niks van merken. Waar moet ik voor kiezen? Md5, sha1, sha256, sha512? Kan iemand daar advies over geven?
 
Ward van der Put
Moderator

Ward van der Put

31/03/2014 12:51:11
Quote Anchor link
Die beveiliging werkt niet goed. Een hacker die een sessie probeert te kapen, kan (en zal) de headers van de echte client namelijk vervalsen.

Je kunt beter een token uitwisselen dat bij elke response verandert en vervolgens bij elke volgende request moet worden geretourneerd. Retourneert de client het verkeerde token, dan vernietig je de sessie.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$token
= md5(mt_rand());
?>
 
Ozzie PHP

Ozzie PHP

31/03/2014 12:59:55
Quote Anchor link
>> Die beveiliging werkt niet goed. Een hacker die een sessie probeert te kapen, kan (en zal) de headers van de echte client namelijk vervalsen.

Kun je uitleggen wat je hiermee bedoelt? Het is overigens niet de enige vorm van security die ik wil inbouwen, maar zie het als een "extraatje".

Stel ik gebruikt IE10 en ben ingelogd. Vervolgens probeer jij mijn sessie te stelen. De hashes worden gecontroleerd. Aangezien jij Firefox gebruikt zijn de hashes ongelijk (als gevolg van een verschillende user-agent). Boem, de sessie wordt vernietigd.

Waarom zou dat niet werken? Een hacker weet van tevoren niet welke browser ik gebruik en welke languages. Zodra hij een sessie te pakken krijgt is het al te laat. De hashes matchen niet dus de sessie wordt vernietigd. Toch?
 
Ward van der Put
Moderator

Ward van der Put

31/03/2014 13:05:38
Quote Anchor link
>> Waarom zou dat niet werken? Een hacker weet van tevoren niet welke browser ik gebruik en welke languages.

Die aanname is verkeerd. Een hacker kan op verschillende manieren de headers van jouw browser ontfutselen. Hij kan je bijvoorbeeld naar een webpagina lokken of je webmail met een plaatje laten openen; dat is al voldoende om de standaardheaders van Ozzies browser te ontfutselen.
Gewijzigd op 31/03/2014 13:05:56 door Ward van der Put
 
Ozzie PHP

Ozzie PHP

31/03/2014 13:19:42
Quote Anchor link
Het is ook niet bedoeld als waterdichte beveiliging. Het is een "extraatje".

Laten we er vanuit gaan dat die hacker "op de gok" wat sessie-ids gaat proberen, en hij schiet een keer raak. Helaas, z'n browser matcht niet. Sessie wordt beëindigd.

Het voorbeeld wat jij noemt snap ik ook, maar de hacker moet dan al weten dat hij mijn headers nodig heeft. Als ie dat niet weet gaat ie al de mist in.

Het is dus puur een extra stukje veiligheid.

Rest mijn vraag... welke algoritme kan ik gebruiken voor het vergelijken van de strings? Ik lees her en der dat md5 en sha 1 wordt afgeraden tegenwoordig?
 
Ward van der Put
Moderator

Ward van der Put

31/03/2014 13:31:42
Quote Anchor link
Maar waarom dan niet een extra beveiliging inbouwen die wèl werkt?

>> Rest mijn vraag... welke algoritme kan ik gebruiken voor het vergelijken van de strings?

Als je de clientheaders in de sessie opslaat, dus op de server, is helemaal geen hash nodig. Een snel algoritme zoals MD5 is voldoende als je toch een hash wilt opslaan.

>> Ik lees her en der dat md5 en sha 1 wordt afgeraden tegenwoordig?

Als je de hash deelt met de client wel, maar daarvan is bij het beveiligen van een sessie met de hash van een clientheader geen sprake. Je hebt zelfs helemaal geen hash nodig, zoals gezegd.
 
Ozzie PHP

Ozzie PHP

31/03/2014 13:37:08
Quote Anchor link
>> Als je de hash deelt met de client wel, maar daarvan is bij het beveiligen van een sessie met de hash van een clientheader geen sprake. Je hebt zelfs helemaal geen hash nodig, zoals gezegd.

Je bedoelt dat je gewoon de niet-gehashte string zou kunnen opslaan?

Als dat is wat je bedoelt, dan heb je gelijk. Een hash is echter korter, dus minder ruimte om op te slaan en sneller om te vergelijken. Dus vandaar lijkt me dat wel handig. Maar oké... een simpel algoritme volstaat dus begrijp ik uit wat jij zegt :)
 
Ward van der Put
Moderator

Ward van der Put

31/03/2014 13:39:32
Quote Anchor link
>> Een hash is echter korter, dus minder ruimte om op te slaan en sneller om te vergelijken.

Wel kleiner, maar daarom niet per se sneller: je moet immers wel minstens twee keer de hashfunctie aanroepen en dat kost ook tijd.
 
Ozzie PHP

Ozzie PHP

31/03/2014 13:41:33
Quote Anchor link
Yup, heb je ook weer een punt. Ik zal het wel ff benchmarken. Thanks.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.