Syndication Security Problem
November 13, 2005 4:47 AM
Subscribe
SystemFilter: As mentioned before, I have a
sudoku website, where I host tons of puzzles that I have generated. I am in the midst of writing a system to syndicate these puzzles, so anybody can embed my puzzles and solver in their site by using a bit of JS code (similar to google adsense). I've got a bit of a security problem that I can't quite solve...
My system is quite similar to the way AdSense works, and I've got quite far already. You setup your syndication account and get given a snippet of JS, and a unique ID, to load the puzzle into your site. Each user will get a few hundred puzzles per day for free, so it's mainly targetted at small website operators.
Here's the pinch. Because it's a block of JS code, I could go to X's website, copy the JS code, embed it in another site (client Y) and syndicate puzzles to that site, using X's client ID. Client X only has 250 puzzles per day and they're getting used by client Y, who is effectively stealing them from client X, so client X is getting hard done by. How can I prevent this?
The actual solver component is flash, so I can embed some intelligence in that, or customise it quite easily for each client. Perhaps making the solver check against what URL it is supposed to syndicate puzzles to? I don't believe in security through obscurity, so I would prefer something that is simple and transparent.
posted by gaby to computers & internet (14 comments total)
If the Flash movie can read the affiliate id, or if you use a named anchor or some such to pass the affiliate id into the Flash movie, then you can have the movie verify against either a database, or within the movie itself, that the current URL matches the set URL for that affiliate id.
If the location href isn't passed properly into the Flash movie, have it generate a Flash-based error explaining the problem.
This problem's been plauging me quite a bit, especially since any standard IP address-based verification would likely be easily spoofed, either through the Javascript directly or otherwise.
This is the link I found about tracking browser states through Flash.
Tell me if this is too complicated or if there is any logical issues I'm missing with this sort of solution.
posted by disillusioned at 5:04 AM on November 13, 2005