SFPortal DRM - Opinion and Ideas For Improvement
Hello everybody
As some of you may know my addon on gmodstore - SFPortal has a DRM in it. I would like the communities opinion on this so that i can either better improve it or create a DRM panel using what i already have so other content creators can use it just like i do.
Here is currently what my DRM Does:
On Packaging your Download Files the DRM currently does this:
Inserts all the MySQL data to make the owner admin and provisionally sets up the panel with the details we can get to make the installation just a drag and drop and edit the MySQL config to install it.
We inject the users license key into core files so that it can be queried against our master database to see where it is installed and who owns it.
Each download has a unique id so it will only be active on 1 website at a time meaning the latest is always active and will allow the old id for 1 hour after to allow website managers to have plenty of time to update their current site before showing "site is out of date".
Details stored on each licensed download: Generation Time, Download Time, SteamID, IP, Version of portal downloaded, license key and domain installed on.
The DRM runs in the background it doesn't query every page load but it does run every X amount of seconds on the server-side when the website is active e.g. 5000 users on the website it will run 1 query every X seconds. (not for every user)
I currently have it set so that if people get banned on gmodstore then they can still access and use the site as if it was active however in the future i am going to look at "version locking" meaning they can only download the "latest version" up till the point they were banned e.g. you get banned at 1.4 and your now on 1.5.1 you can only access 1.4.
The DRM also supports remote nulling (never had to use it yet) by where if you get a back-charge from a user or the user attempts to leak it and you don't want this to happen i can just change a MySQL field and it will mark the license as invalid and triggering a "license error" page on all the portal pages - its designed not to trigger a false positive only when "suspended license" so there's no way to manually trigger it other than not uploading the latest download the active site after 1 hour as that will display a similar message.
My current DRM panel also supports source code compiling (obfuscation).
That is basically how it works. I have a lot of people telling me both sides of the story and i would just like to know what i could do to improve it or make it more appealing to people as i would like it to be non-intrusive and as painless as possible to "configure". (Website Scripts Only - not ingame)
Thank You For Your Time
Bl4d3z
Hey Bl4d3z,
im currently working for you on a little rework of the lua sided version of the addon.
As far as i know you'r using "SourceGuardian" and SourceGuardian is a commercial software you have to pay for.
The LUA Code is not touched by the DRM. It cannot be a simple "drag and drop" installation, because you have to install a SourceGuardian Loader to load protected code properly (and no, its not just "apt-get install sourceguardian" or something like this ...).
And you take the user advantage away, to update/modify existing code. (currently there are alot of php errors which needs to be fixxed but no one (except you) can do this, because all files which are "damaged" are protected.) [but this is just a political view]
Sorry for my bad english SeaLife
SourceGuardian Loaders for the website use is free. Only the compiler costs money. it is licensed to a server itself not and individual but if the user wanted to run my DRM backend i would talk to SourceGuardian about this and they might require their own license.
On some servers repo's its installable with yum and apt-get.
Also as regards that php error part. Yes i do agree that is a problem but i currently only compile the admin panel and most errors are MySQL db related e.g. missing auto increment or null flags i missed out by accident. The code itself wont compile with errors as it runs a simulation of the code before compiling to check for errors and if it errors it deletes the compiled code and prints errors to be fixed.
It doesn't however pick up on post errors from page queries but i test it quite throughly before i release upgrades. But i could maybe "trim" this down a bit to the more sensitive parts rather than a blanket block on all core files. (nothing user end) e.g. page structures of the admin panel if people wanted to get rid of the side nav for example. i am also working on a system to solve this issue which allows perms to be set on pages dynamically even whilst encoded an admin cp to control these encoded pages.
Hey,
yea, the loader is for free :) The encoding part is commercial licensed and was related to your "make a panel and everyone can use DRM..." ....
Maybe this is on some server repositories.. But on all "stock-based" debian and redhead systems its not. You have to add a repository to do so or install it on your own. Its not a hard task but its not user friendly and you need a bit more then basic linux knowledge.. :)
Regards SeaLife