Archief - php: mogelijke perfecte beveiliging tegen offline script kopieren

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Lemon

Legacy Member
Stel, je hebt een script gemaakt. Dat je graag wil verkopen aan mensen. Maar je wil niet dat men dat script offline gaat kopieren.

Ik denk dat ik een mogelijk oplossing gevonden heb, maar ik vrees ervoor dat het veel te veel serverload gaat hebben.

Het gaat alsvolgt:

persoonA koopt een licensie op de hostname www.ghost.com

1) Je neemt de MD5 hash van die host: '9689a84f8b3f450792dca139c89c913e'

2) Je encode een stukje echt nodige php code voor je script met deze hash als key.

3) deze php code is dus onleesbaar geworden. En nu stuur je de package op naar de klant van die hostname.

---

Het script zal nu enkel naar behoren werken als het op die hostname staat.

online gebeurt dit:

----

1) het script leest de hostname waarop het draait.

2) het zet de hostname om naar de MD5 hash.

3) het script probeert dat stukje belangrijke php code te decoden met die hash. Maar als het niet de juiste is voor die hostname, dan zal het script niet werken door fouten in de code.

4) is de hash wel juist, dan wordt de php code goed gedecode, en kan het script werken.

deze gedecode php code wordt dan mooi geinsert in het huidige script op de juiste plaats.

Nu het grote nadeel.

stukjes php code decoden on the fly is een zeer grote server balast denkik.

Maar is die balast merkbaar als het maar gaat om bevoorbeeld een tekenreeks van 200 tekens?

maT'

Legacy Member
Lemon zei:
Maar is die balast merkbaar als het maar gaat om bevoorbeeld een tekenreeks van 200 tekens?
Op zich niet, maar als je met sleutels begint van nog eens 50 keys (zoals bv die md5hash), zal het al een pak zwaarder worden, zeker als je dat systeem "verkoopt" aan 20, 50, 100 klanten.

Waarom wil je'r trouwens een beveiliging opzetten ? Zet een copyright in die code, en als je eens een pagina tegenkomt waar jou scripts op staan, kan je hen eventueel aanklagen voor wat geld (hoewel ge u nu moet afvragen of dat eigelijk wel de moeite is ... ).

PHP-projecten moeten open zijn, houdt het gewoon zo :)
Elke code is uiteindelijk toch te kraken, dus steek er nie te veel tijd in, maar focus je meer op de kwaliteit van je scripts. 't Is trouwens toch een leuker gevoel van je script(s) op 50 sites te zien, dan het gebruikt te zien op 2 sites (die ervoor betaald hebben, akkoord), niet ?

Lemon

Legacy Member
mja true, maar ik wilde me hier gewoon ff op verdiepen.

Btw, het wordt niet harder belast hoor hoe meer klanten.

Want elke klant zal een eigen gecodeerd file krijgen. Die zal worden gedecode op de hash van de host.

Natuurlijk is die code kraakbaar, maar het zal niet sneller gaan dan brute force van de hash. En deze is toch wel redelijk complex :) Mss dat ik de eerste 8 tekens gebruik van de hash voor code en decode. Zodat de key zelf een stuk lichter wordt.

manson

Legacy Member
maT' zei:
't Is trouwens toch een leuker gevoel van je script(s) op 50 sites te zien, dan het gebruikt te zien op 2 sites (die ervoor betaald hebben, akkoord), niet ?
niet als je er nog eens je brood met wil verdienen
ik zie ook niet in waarom php-projecten per definitie open source zouden moeten zijn

Lemon

Legacy Member
Stel u voor hoeveel voordelen dit zou hebben voor php projecten die niet gratis zijn zoals dit forum.

Het moet niet perce de output file zijn die gecode wordt he. Zodat die code snel is.

Maar stel dat je de administratie functions file. Code, en enkel on the fly decodebaar is op de server zelf op basis van de hostname. Zodat het admin panel niet beschikbaar is als je een illegale versie hebt.

Dit zou echt het grootste probleem oplossen dat niet-gratis scripts hebben.

BertG

Legacy Member
manson zei:
niet als je er nog eens je brood met wil verdienen
ik zie ook niet in waarom php-projecten per definitie open source zouden moeten zijn

open - source is ook niet per definitie gratis,
kijk naar betaalde versies van linux,
Dit stukje forum software,
Sommige windows producten beginnne ook open source te zijn :)

het is iid beter open source te zijn, maar niet vanwege het geld :)
gewoon meer mensen die kunnen bugs vinden en oplossen :D

Cakeman

Legacy Member
Je gaat die decode-functie in elk geval ergens moeten aanroepen in je code. Kan men dan niet if-structuren vervangen of code out commenten ofzo?

Aangezien PHP niet gecompileerd wordt lijkt het me zeer moeilijk een degelijke security aan te bieden.

medic

Legacy Member
Dit is nogal vrij onnuttig imho, de decode functie wordt ergens in da script aangeroepen met als argument het domein, dus uw klant kan da script zeer makkelijk decoderen en naar file laten writen.

Dit is een veel professionelere oplossing imho > http://www.zend.com/store/products/zend-encoder.php
enig nadeel is dat de host het moet toelaten.

0n3Liner

Legacy Member
zet er gewoon een mailfunctie in bij elke installatie word ge gewaarschuwd

medic

Legacy Member
0n3Liner zei:
zet er gewoon een mailfunctie in bij elke installatie word ge gewaarschuwd

Da gaat helpen :ironic:
Ten eerste : een php-script installeert ge niet, ge copy-paste da gewoon naar uw server.
Ten tweede : das maar één regel code dat ge moet verwijderen om die zever uit te schakelen :p

Lemon

Legacy Member
Ik kan er ook altijd ergens in die code een systeem inwerken, van als de host niet regged is, dat het script een pagina inlaad op mijn off webspace. Door http headers kan ik zien vanaf welke hostname deze request komt, en kan ik zo die persoon contacteren dat hij met een illegale kopie zit? :)

medic

Legacy Member
Lemon zei:
Ik kan er ook altijd ergens in die code een systeem inwerken, van als de host niet regged is, dat het script een pagina inlaad op mijn off webspace. Door http headers kan ik zien vanaf welke hostname deze request komt, en kan ik zo die persoon contacteren dat hij met een illegale kopie zit? :)

Jullie snappen het echt niet hé? :p Al die dingen die hier nu al zijn opgenoemd zijn allemaal if-branche'kes en dus very easy om te verwijderen.

De beste manier om't te doen imo :
- Ontwikkelen op uw eigen server
- Uw klant regelmatig uw script op uw eigen server laten testen
- Als het klaar is gaat ge met 'n laptop naar een klant en laat ge de code op die laptop zien.
- Als de klant tevreden is brandt gij de code op een cd'ke en betaalt hij u tezelfdertijd (gelijk oversteken :p)
- Ge kunt die klant evt. ook nog een contract laten tekenen dat da ni gekopieerd mag worden, etc...

killgore

Legacy Member
mobman zei:
MD 5 hashes zijn simpel om te kraken...
3d6b0cfd2c0d9e1ee54f26b22b1e3cc9

Nu ja, al die perfecte oplossingen, ik denk dat de 'gewone' scriptencoders (door djeez gepost) toch nog altijd beter zijn als je eigen dingen die je probeert :).

sneax

Legacy Member
die user kan idd gewoon de 'if' verwijderen en tis gefixed, desnoods wordt dit gedaan door iemand anders die dan uw script verspreid over internet
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan