Autor Zpráva
SeparateSK
Profil
Dobrý deň, robím svoju library - db systém , ktorý nepotrebuje špeciálny server.
I keď som to absolutne celé naprogramoval ja, i tak to niekto stiahne,a samozrejme prepíše moje meno, teda si privlastní celý ten script - to dokáže každý. To zas ale ja nechcem
Tak som tam pridal zopár riadkov:
        if("aeee1b9f"!=self::JL1(self::nSQL_Author)){ //nSQL = neoficialny nazov!!!
            exit(base64_decode("PGI+UHJlcO1zYW5pZSBvcmlnaW7hbG5laG8gYXV0b3JhISEhPC9iPg=="));
        }
JL1() je moja vlastná hash, a "aeee1b9f" je zahashované autorové meno. Spraví to to,že ak niekto prepíše moje meno, tak porovná to prepísané meno s už predtým zahashovaným a ak sa nezhodujú, tak celý script ukončí.
Oplatí sa svoj script takto chrániť?
Ak áno,je toto najlepšia cesta ako ochrániť svoj script alebo je aj nejaká iná lepšia cesta, alebo si to nemám ochraňovať vôbec, keď už to je voľne stiahnuteľné?
Someone
Profil
SeparateSK:
A co když dotyčný odstraní i ten porovnávací script?
SeparateSK
Profil
Hm, nejak to pozmením na napr.:
        if("aeee1b9f"!=self::JL1(self::nSQL_Author)){
            exit(base64_decode("PGI+UHJlcO1zYW5pZSBvcmlnaW7hbG5laG8gYXV0b3JhISEhPC9iPg=="));
        } else define("protected","_TRUE");
A niekde v strede kódu pridam: if(!defined("protected"))exit("");
Samozrejme ,aby to bolo čo najviac nepovšimnutelné ,že práve toto ochraňuje script, tak všetko v eval(base64_decode...));
Takže keď odstráni:
        if("aeee1b9f"!=self::JL1(self::nSQL_Author)){
            exit(base64_decode("PGI+UHJlcO1zYW5pZSBvcmlnaW7hbG5laG8gYXV0b3JhISEhPC9iPg=="));
        } else define("protected","_TRUE");
Tak sa to ukončí.
Joker
Profil
SeparateSK:
Hm, nejak to pozmením na napr.:
Tak bude zase stačit smazat ten první IF a nechat jen define("protected","_TRUE");

Začíná myslím být zjevné hlavní úskalí toho: Když to bude jednoduché, půjde to snadno odstranit. Když bude celý kód prolezlý kontrolami na jméno autora, bude to mít negativní dopad na jeho vlastnosti (rychlost, přehlednost, náročnost údržby).
SeparateSK
Profil
Ale beriem to tak, že to stiahne nejaký novší programátor, ktorý sa v týchto veciach špárať nebude. Prípadne prepíše meno, aby to vyzeralo ,že to vytvoril on.
Alebo by bolo lepšie vyechovať meno pôvodného autora do poznámky v HTML? <!-- AUTOR--> - teda si to ani nevšimne, keď zobrazí stránku.

Však Exit si každý všimne, keď sa použije, hento nie.
Tori
Profil
Když jsme u tohoto tématu, mám dotaz i na ostatní: jakým způsobem chráníte svoje kódy před tím, aby je někdo vydával za své? A děláte to vůbec? Myslíte si, že je to potřebné?

Totiž subjektivně mám pocit, že pokud zveřejním zdroják něčeho pod licencí typu MIT či LGPL, tak nikdo nemá důvod si to nějak přivlastňovat (když to může libovolně používat zadarmo i bez toho). A pokud je to aspoň trochu úspěšný komerční produkt, tak tomu pravděpodobně nezabráním. Takže nevidím smysl v tom to vůbec nějak řešit (viz též článek Jen je nechte, ať si kradou, byť se to týká UI a ne knihoven).
Plaváček
Profil
Tori:

Přihlédneme-li k tomu, jakým způsobem internet funguje, je každý způsob podobné "ochrany", kterou řeší tazatel, kontraproduktivní a hlavně zbytečný. Ideální způsob obrany, byť to vypadá absurdně, je celý zdroják zveřejnit pod nějakou volnou licencí (třeba na svém blogu) nebo kdekoliv jinde.

Autorství tak bude jednoznačné a programátor se může místo ztráty času v podobě vymýšlení hloupých "ochran" věnovat zlepšování výsledné aplikace.
ShiraNai7
Profil
Pokud nechces aby si zdrojovy kod mohl nekdo pozmenit, nedavej ho verejne na internet. Jakoukoliv "ochranu" v kodu lze VZDY obejit.
SeparateSK
Profil
No, pravda, nejaká skvelá ochrana sa tomu nedá dať, lebo môžu zasiahnuť do zdrojového kódu a ten kto vie programovať v PHP a nie je začiatočník to hravo obíde.
A keď už to mám dať free, tak nech to je 100% free.
Tí ,čo to stiahnu by mohli mať aspoň toľko česti, aby tam nechali moje meno i keď nie vyechované. Však tých cca 700 riadkov a argument parser som napísal ja sám a nie oni.
Ale mohli by aspoň vypísať ,že ich stránka používa môj db systém :)
Lamicz
Profil
Tori:
Základ je vlastní server a obchodní model pronájmu. Pak se ke zdrojákům nedostane. Velmi málo aplikací ve firemní sféře Ti dovolí nainstalovat na vlastní hardware (a když ano, odpovídá tomu cena), je to výhodnější i z hlediska kompatibility, správy verzí apod..
SeparateSK:
V momentě, kdy mám přístup ke zdrojovému kódu, což u PHP mám, je jakákoliv ochrana zbytečná. Možná trochu "zloděje" pozdržíš. Něco jiného je např. Zend encoder nebo Ion Cube, musí být ale podpora na serveru, aby takto enkódované scripty spustil.

Jinak osvědčila se mi ještě jedna věc - pokud je kód alespoň trochu "sofistikovaný" - ono stačí i obyč. OOP - zlodějíčci se v tom nevyznají a nic s tím neudělají. A kdo se v tom vyzná, už umí PHP natolik, že má slušně placený job a napíše si to sám (a třeba líp) :D. Jinak mne už taky kdysi ukradli jedno CMS, ale nic s tím neudělali. Akorát mi pak ještě napsali, jak je to udělany, že se v tom nevyznají...
SeparateSK
Profil
Však pǒcítam s tým ,že vačšina z nich sa v OOP nevyzná ,tak keď tam to moje meno prepíšu, tak to bude na ich smolu. Však bude stačiť aj tá nenápadná HTML poznámka, tú si ani nevšimnú :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: