We're sorry, but this discussion has just been closed to further replies.
Tags:
As a temporary measure, consider the following proposal.
A VRML Proto could be created (using javascript) that can be used in a very basic wrl file to load the actual full wrl using a javascript call, thus preventing the world from appearing in a browser cache.
If the final world is actually served up from a server side PHP script then the proto could also do an initial message exchange with the PHP script to first tell the server which browser is being used to load the world. Then, the server would serve the final wrl to the user's system if that browser is in a list of recognized browsers. In this way one could, for instance, make it difficult for someone to use VRMLpad to download the final wrl.
I've made one world that simply cannot be downloaded with vrmlpad. Relies on things like passwords and cookies.
Checking if the requesting application is a valid vrml browser doesn't work. I checked using Apache, php etc and there isn't a proper plugin name being passed. As it uses the network portion of the parent Browser, eg IE, Firefox, Opera, so you get the html brower's name instead.
Paul Aslin said:
I've made one world that simply cannot be downloaded with vrmlpad. Relies on things like passwords and cookies.
Can your world be loaded into the VRML browser in the same way as any other VRML world (i.e. without a special password or cookie)? I am only considering how one might make it more difficult for someone to view the VRML source for publicly enterable worlds, not worlds that are protected by a password page before the VRML can be loaded (i.e. a private world that is by invitation only).
Checking if the requesting application is a valid vrml browser doesn't work. I checked using Apache, php etc and there isn't a proper plugin name being passed. As it uses the network portion of the parent Browser, eg IE, Firefox, Opera, so you get the html brower's name instead.
When I use the proto I created and provided in my earlier post, the call to Browser.getName() returns the string "blaxxunCC3D", and not "IE7" nor "Mozilla" nor anything like that. So it is not clear to me what you are claiming about the "network portion of the parent Browser". Can you elaborate a bit more on what you did with Apache and PHP scripting?
Even if we carried out such a scheme as you suggest Doctor, there would still be a problem. that is that the browser is not the only object which contains copies of the code.
the activex control also contains all of the scene graph in nicely formatted strings, all of these are easily reconstructable into a full version of the world. an avatar simply needs to instance the world root and send it to the console.. also i keep getting the feeling that this is leading us towards something like a closed format.
Obsfication, although usually defeatable with a bit of work, can give even the most determined a seious headache. also it combines someting unique about the coder and the method, that is that both require/have special skill and have/require a degree of intelligence.
my code is often so dense that i can not read it myself, so i pity someone else trying to unscramble it.
perhaps we could develop a software which could systematically scramble code with a key. so that the coder/development team had access to it when required
the active x could have a layer of code to read this. it would be best if somehow the code logic could be scrambled in some way. perhaps with a systematic(reversible) substitution of variable names, so that x1 became y2 etc.
hm.. the problem still remains that at some point a non encypted scene graph is going to exist, a directx card memory reader could read it if nothing else.
there are other issues too, like protection of image copyright. and other media.
btw
great idea about a contest to crack your code Doctor :)
© 2009 Created by Bruce Lehmann on Ning. Create a Ning Network!