Well, to find out who is spreading pictures, you will need to modify them on the fly, giving each user a different file. You could modify the EXIF information, but that is easily visible, and easily changed once the users suspect something is going on. Still, you would probably catch the first miscreant with this trick. (For perl bindings, look to Image::EXIF).

After that, you will need to be more clever. The practice of hiding messages in plain sight (such as in the slight increase of noise in a particular picture) is called steganography. If you google for it, you will get loads of theory, and some code, including steghide, a program designed to hide messages in pictures.

Your script would need to call steghide before each download, and hide the string "downloaded from foo by user bar".

I suggest including the name of the site just so the miscreant doesn't try to explain that he signs all "his" pictures with his username.

I'm sorry, but I couldn't find perl bindings for steghide.


In reply to Re: Find the thief: CGI & JPG & hidden info by matija
in thread Find the thief: CGI & JPG & hidden info by Skeeve

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.