Easy to Implement Copy Protection

Introduction

Sometimes it is enough for me to see a SWF to understand how to do
something I was grinding my teeth on for quite a while. If you have sufficient
experience, just the title and subtitle give away my little trick !

The problem

This was addressed by cathode in an
article about the subject of protecting your work, on Flashkit. I would like
to show you how easy it is to protect your work from being shared and moved
around, uncontrollably on the internet. This especially pertains to those of us
who publish cool SWF in order to demonstrate our work, and don't wish others
presenting the SWF as their own. Sometimes, placing your name or copyright
information to the artwork itself is too tacky. Here's how you can make certain that your SWF is only
displayed on the target site(s) of your choosing:

CHECK
THE SOURCE URL!

protocol=_url.substr(0,_url.indexOf(":"));
if (protocol=="file") {
// Let's be nice:
// If the leecher downloaded the SWF, well let them play it
// on their on computer
//
message="It seems you are trying out this SWF on your local hard disk. That's ok, but be aware that this SWF will only work if played on the source site"
} else if (protocol=="http") {
// doubleSlash
// ===========
// The location of the first occurance of a "//" in the url.
// url's are formed as following:
//
// [protocol]://[server]/[pathname]
//
// Where protocol is any udp such as ftp, file, http, etc
//
doubleSlash=_url.indexOf("//");
//
// server
// ======
// Isolate the server name: Go past the "//", and everything
// between the doubleslash and the next "/" (single slash")
// is a server name
server=_url.substr(doubleSlash+2,_url.indexOf("/",doubleSlash+2)-doubleSlash-2);
//
// Let's get rid of the "www" prefix, because
// sometimes servers recognize the address without this
// prefix.
// Here's a little catch!
// What if the user typed "http://www.6FootMedia.com"
// That is not the same as "http://www.6footmedia.com"
// (The difference is in the caps)
server=server.toUpperCase()
//
// Get rid of the WWW. prefix
// so we can focus on examining only the server domain name
if (server.indexOf("WWW.") <>-1) server=server.substr(server.indexOf("WWW.")+4,server.length);
//
if (server.indexOf ("TIRANDAGAN.COM") <> -1 or server.indexOf("FLASHKIT.COM") <> -1) {
message = "Copyrights are being preserved";
} else {
message = "Alert! This film's copyrights are being infringed! A message is being sent to author that you have copied his work. Expect the copyright police to arrive 15 minutes at your doorsteps. \nOffending website path: " + _url;
// Here you can put code to redirect the film to another frame
// or to getURL to a page on your site that reports a stolen goods page...
}
}
box1=prefix;

Fig.1  The code in Frame 1 of the FLA

Most of this code is well documented so just look at the
code. The idea here is that the _url property of Flash 5 contains the calling
url, which includes the server name on which the SWF is sitting. Unless someone
comes up with masking the server name, the SWF will only play on particular
servers. I suggest you try a subtle approach in your copyright protection, so as
to not give away the simplistic mechanism of your protection: Simply transfer
the film to an empty frame with a stop(); command so the user (the thief) does
not understand what is keeping the film from loading.

At the age of 14, Tiran got his first "gig" as a programmer for a film production company. Since then, he has managed large development teams on PC, VAX and Unix. His roots are in the Z80, 8086 and Apple Green Book of operating system mnemonics, but Tiran incorporates his extensive background in art, music and general knowledge into object-oriented programming. His work combines video, audio, animations and server side programming.

» Description:
I created this font for free use. Everyone can apply it in personal or business texts. Its free, but I want to be communicated in case of business use. Donations are accepted to keep the project of free fonts alive! Thank you all