If I implemented such a system to have only one signon per user or something similar, I would do something like this:
1: create an IP based machine identifier, perhaps using JavaScript / Java Applet / Flash, you can get a MAC or I don’t know what things are being considered. For simplicity, let me say that I compute the host id as follows:
ID = MD5(PUBLIC_IP) + MD5(LOCAL_IP) + MD5(MAC)
2: Log in to User1 and let me pretend that I calculated host ID = 666. We are looking at a table in the database, let's say table_hosts that contain this data (user, host_id)
3: User1 used all 5 downloads (track them using a session or records from the database)
4: User1 try to log in as User2, and now we calculate ID = 666, the same ID = 666, we look at table_hosts and find out that the same host ID was used by User1 during this day. Now we can ban accounts with this identifier, give warnings, like 20%, before the ban, etc.
I hope I can help, but remember, be creative, that all this is important!
LE. Since other users discuss shared computers, the identifier can be calculated as follows:
ID = MD5(PUBLIC_IP) + MD5(LOCAL_IP) + MD5(MAC) + MD5(NameOfLoggedOnUser)
But it also has a drawback, an attacker can create two or more accounts on it. In any case, I repeat creativity, and yes, we must not forget that any lock can be locked.
Dr.Optix
source share