Hi PerlMonks

I am looking for a solution to do some browser fingerprinting that goes beyond an IP check. I want to validate if someone coming into a CGI script is from a device I have seen in the past with some reasonable accuracy that is not an IP or Cookie check. I understand this is not fool-proof and users can and will switch browsers but nonetheless I would like to do a browser digital fingerprint and then exclude.

So the question is... any code or module someone can provide that gives a reasonable browser digital fingerprint algorithm?

It needs sit in the middle of being restrictive but not too restrictive (i.e. you could not just check useragent and say you are disallowed because the same useragent has already been seen).

Based on my reading it would seem a combo between user agent and browser plugin details would work but I am not sure perl CGI can get plugin details?

User Agent (1 in 4,184)
HTTP_ACCEPT Headers (1 in 14)
Browser Plugin Details (1 in 1.8 million)
Time Zone (1 in 24)
Screen Size and Color Depth (1 in 1,700)
System Fonts (1 in 11)
Cookies Enabled? (1 in 1.3)
Limited SuperCookie test (1 in 2)

http://softwareengineering.stackexchange.com/questions/122372/is-browser-fingerprinting-a-viable-technique-for-identifying-anonymous-users

Thanks in advance for the help!


In reply to Browser Fingerprint by freedurt

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.