比如我現在做一款 PHP 項目的第三方外掛程式,使用者需要到某平台付費後下載使用。
使用者的使用環境可能是無法訪問外網的
這樣的情況下有什麼思路是可以解決 “避免一個使用者付費下載後所有使用者都能複製使用” 的問題?
如果有過相關的經驗,希望可以提供個思路
現在的情況就是使用者毫不排斥我們會對伺服器推送訊息,並且樂於使用我們產品,以及使用相關外掛程式。源碼也是加密的。需要考慮的是如何保護付費外掛程式的開發人員利益
追加:
可能我沒說清楚,外掛程式使用者不是開發人員,只是單純的使用者。源碼加密那是肯定會做的,但是即使你源碼加密也不影響這個外掛程式在應用中正常使用不是嗎?就像是單機遊戲一人破解萬人使用,使用者不用管你源碼怎樣,反正我拿到能用就是了。要處理的是這種情況
回複內容:
比如我現在做一款 PHP 項目的第三方外掛程式,使用者需要到某平台付費後下載使用。
使用者的使用環境可能是無法訪問外網的
這樣的情況下有什麼思路是可以解決 “避免一個使用者付費下載後所有使用者都能複製使用” 的問題?
如果有過相關的經驗,希望可以提供個思路
現在的情況就是使用者毫不排斥我們會對伺服器推送訊息,並且樂於使用我們產品,以及使用相關外掛程式。源碼也是加密的。需要考慮的是如何保護付費外掛程式的開發人員利益
追加:
可能我沒說清楚,外掛程式使用者不是開發人員,只是單純的使用者。源碼加密那是肯定會做的,但是即使你源碼加密也不影響這個外掛程式在應用中正常使用不是嗎?就像是單機遊戲一人破解萬人使用,使用者不用管你源碼怎樣,反正我拿到能用就是了。要處理的是這種情況
加密方法:把php檔案都編譯了就可以
授權方法:內部做一個驗證方式,每個付費客戶會拿到一個key/sn,使用時需要輸入這個key
驗證方法:簡單辦法可以根據被訪問的地址或網域名稱檢測,一個key對應一個地址
痛點就在於內部的驗證方式,key→(你的私人密碼編譯演算法)→使用者將要被訪問的地址;
另外後期維護起來可能有些麻煩。可能你還要一個萬能key用於使用者開發階段的使用。剩下的設計你就自己考慮吧。
真逗,就算使用者使用的環境是可以訪問外網的你就能防止了嗎?你的代碼是開源的好不好?如果你植入了識別語句會被找出來並刪掉,而且,如果你的外掛程式會主動向特定的伺服器推送資訊,誰敢用?核心資料被你偷了怎麼辦?也不用特別考慮加密,基本上外掛程式不會100%符合要求,所以一些微調是必然的,所以加密過的外掛程式不會有人買。
這個事兒還是完全靠自覺,實際上性價比很好的話大家是樂於付費的,幾十幾百塊錢的東西誰會這麼糾結,再說這個錢又不是程式員自己出,你會問老闆“咱們話500塊錢買一份還是用盜版的呢?”還是會告訴老闆“咱們要用這個,500一份,給批個條”?前者老闆會不會腹誹你覺得老闆的面子不值500塊?
最後,親,我覺得盜版不是問題,而是免費都沒人樂意用才是問題。
當然,你如果做的是PHP底層外掛程式編譯的mo或者dll的話當我什麼都沒說過。
針對修改後的問題
你們的產品是加密的,那外掛程式源碼也加密,付款買啟用碼,然後搞個線上啟用,後期運行不需要連網。
phar zend or dll 混淆,
源碼加密了 是不是就可以做授權什麼了,擷取相關資訊做序號。 被破解了 那就GG了
這個Windows都沒做到,目前貌似沒有完善的解決方案
樓主如果你這個付費300,我個人猜測如果銷量好,會有開發個只要50的外掛程式,所以還是建議
免費,開源 實在不行義務捐贈也行
zend guard~
核心功能用 Python,golang,c 或其他語言寫,並編譯成可執行檔供 php 調用.
驗證機制就放到裡面,這樣就增加了破解難度
PHP7中可以用opcache.file_cache匯出指令碼opcode一定程度上保護原始碼並提升運行效率.
其實有時自己稍微用php_strip_whitespace/gzcompress/base64_encode混淆下,用eval/base64_decode/gzuncompress運行,防防君子還是可以的.
mzphp :第一款支援 scss 文法、 css sprite 、以及 EnPHP 混淆加密的 php 架構,支援PHP7:
https://git.oschina.net/mz/mzphp2