it-swarm-eu.dev

Secure WordPress placený plugin

Chci vytvořit plug-in WordPress, ale také chcete zajistit, aby plugin mohl být použit pouze po jeho aktivaci sériovým klíčem, který by měl být jedinečný pro každou doménu.

Jaký je nejlepší způsob, jak na to za předpokladu:

  1. Musím dát skutečný zdrojový kód uživatelům a nemůžu mít typ zabezpečení VideoPress - což je jen JavaScriptový obal pro skutečný obsah, který pochází ze serveru pluginu.
  2. Chci se ujistit, že nováček v průměru PHP developer nebude schopen bezpečně vytvořit bezpečnost.
5
Adhip Gupta

Možnost 1 - Zpracování některých dat ve vašem systému

Nechci umístit veškerý modul plug-inu na svůj vlastní server, ale vybrat jednu nebo dvě důležité funkce a udržet je ve vašem systému. Pak vyžadujte klíč API pro každý web, který používá modul plug-in, aby mohli komunikovat se serverem.

Možnost 2 - Šifrování uložených dat a vyžadování hostovaného dešifrovacího klíče

Další alternativou je základní nastavení šifrování - to je vlastně systém, se kterým jsem si na chvíli pohrával, prostě jsem se ještě neobtěžoval nasazovat. Samotný kód (aby zůstal věrný GPL) je celý prostý text, jaký byste očekávali. Všechna uložená data (výchozí hodnoty, nastavení zásuvného modulu atd.) Jsou však před uložením do databáze zašifrována. Trik je, že plug-in na vzdáleném systému nemá dešifrovací klíč - aby bylo možné data dešifrovat, musí poslat svůj API klíč do vašeho systému, který pak reaguje dešifrovacím klíčem. To pak může být uloženo v přechodném režimu (dočasná možnost) po určitou dobu před tím, než bude vyprázdněno - tak nebudete mít web, který zasáhne váš server každé 2 sekundy během silného provozu.

Nevýhody tohoto přístupu by však mohly převažovat nad výhodami (což je důvod, proč jsem ho zatím nikde nenainstaloval). Za prvé, důvtipný programátor může zachytit dešifrovací klíč a pak už nepotřebují váš server. Nebo by mohli jen vyprázdnit všechny šifrovací/dešifrovací háčky a spustit v prostém textu. To je výhoda open source pro uživatele a nevýhoda pro vývojáře, kteří chtějí distribuovat free-but-omezený systém.

Druhou nevýhodou je závislost na serveru. Uložení klíče do přechodového režimu zvedne část zátěže vašeho serveru ... ale pokud se vaše stránky sníží o jednu nebo dvě hodiny, pak všechny stránky používající váš zásuvný modul klesne na hodinu nebo dvě, pokud neplánujete nějaký druh ladné deaktivace. Také by to znamenalo, že budete muset udržet zmíněný server na dobu neurčitou, pokud lidé budou nadále používat váš systém.

Varianta 3 - Omezte funkce "volné" verze

Poslední možností, kterou aktivně pracuji, je rozdělení funkcí a funkcí plug-inu. Jádro systému (UI, základní funkce atd.) Je volně dostupné bez registrace. Pro pokročilejší funkce musí uživatelé zaregistrovat svou kopii, získat aktivační klíč a zadat tento klíč do uživatelského rozhraní pro dokončení procesu - modul plug-in poté zkontroluje na vašem serveru a stáhne do systému další prémiové doplňky. .

Nevýhodou je, že jakmile je jednou stažen, veškerý kód nyní spočívá na stránkách uživatele a pod GPL mohou stále šířit celý balíček. Výhodou je, že záleží pouze na vašem systému a nevyžaduje žádnou dlouhodobou podporu stahování/zpracování.


Jakýkoli způsob, jakým se rozhodnete posunout kupředu, je buď zasažen udržováním nějakého externího rozhraní API na serveru nebo poskytováním úplného zdroje systému uživatelům. Pokud si ponecháte některé funkce na vašem systému, budete téměř muset zaručit 100% uptime, aby to stálo za to. Pokud chcete poskytnout úplný zdroj, není možné (v rámci GPL) zabránit tomu, aby někdo jiný distribuoval váš systém.

4
EAMann

Nemůžete skrýt zdrojový kód od uživatelů aplikace WordPress ani vám není dovoleno omezit redistribuci pluginu z důvodu licenčních důsledků.

Vytváříte derivát WordPressu s vaším pluginem a vaši uživatelé mají právo získat jeho zdroj a volně ho šířit (viz čtyři svobody ve svobodném softwaru ).

Za předpokladu, že WordPress je licencován pod GPLv2 a máte zákazníky mimo USA, měli byste se zabývat důsledky narušení GPL, které můžete mít ve vašem ("chráněném") produktu.

Snažíte se implementovat uzamčení dodavatele pro uživatele.

3
hakre

Jediný způsob, jak mít distribuovaný plugin, který má bezpečnou licenci, kterou žádný programátor na půli cesty nemůže zaseknout, je spuštění hlavní funkce pluginu na vašem vlastním serveru, jako je Akismet. Uživatel musí odeslat požadavek na váš server, který obsahuje jejich licenční klíč. Pokud klíč zkontroluje, spusťte zdrojový kód na konci a odešlete výsledky zpět.

2
John P Bloch