摘要:開發擴展是用語言實現的,流行的很大一個原因也是因為有大量開發者通過擴展實現大量通用的功能供廣大社區開發者使用。擴展化的優勢產品安全性和私密性好系統性能高擴展化的劣勢開發效率低的優勢之一就是開發效率高,需要選擇系統合適的模塊進行擴展化。
php是解釋性語言,不需要編譯。對于用php寫的產品,如果需要直接源碼安裝到客戶的運行環境中,則存在很大的安全隱患。客戶甚至可以把你的產品直接做二次部署或者銷售。目前我們公司就遇到這個問題。
1. 利用zend guard
Zend Guard不僅可以實現對PHP應用的腳本進行加密保護和對PHP應用的產品進行商業許可證管理,還可以為許多軟件生產商、IT服務提供商提供完善的加密和安全的產品發布系統。(摘自百度百科)
雖然zend guard 能增加一定的安全性,但是網上zend guard解碼工具一大堆,zend guard只能做最基本的防護。
2.開發php擴展
php是用C語言實現的,php流行的很大一個原因也是因為有大量開發者通過擴展實現大量通用的功能供廣大社區開發者使用。php擴展開發的意義和好處,鳥哥也在其博客中有過闡述:用C/C++擴展你的PHP
3、公司產品的分析
進行php擴展開發,首先需要有不錯的C/C++基礎,同時也需要熟悉php擴展API。有一定的技術門檻,同樣對于一個以php為主要技術棧的初創性公司來說,需要考慮技術和時間成本。
php擴展化的優勢:
產品安全性和私密性好
系統性能高
php擴展化的劣勢:
開發效率低 php的優勢之一就是開發效率高,需要選擇系統合適的模塊進行擴展化。
維護成本高 越多的模塊擴展化,則要求團隊中需要更多的人即熟悉C 又懂php,人力成本也將增大,同時,因為擴展需要編譯,調試和bug修復的成本也將增大。
通過討論和分析我們目前產品的情況,如圖所示:
思路:
我們首要目標是保證產品系統的隱私性,即我們會在擴展中對用戶的一些信息和權限進行校驗。同時,為了保證用戶不能繞過我們的校驗,則需要擴展中的功能是系統必須的,用戶如果需要重寫,需要很大的成本。
a、起初,討論過程中,大家的意見都是建議盡量少的代碼改動,把入口進行擴展化。但是我們目前系統是基于yii開發的,如果更改yii框架中的入口內容,這樣做無法解決問題:1、對于熟悉yii框架的開發人員來說,他可以輕易繞過你的擴展內容。2、不利用后續yii框架的升級。
b、第二種方案配置文件擴展化,第一反應,把配置文件放在擴展中,如果去掉擴展,系統就無法正常運行。但是,仔細思考后,就發現,無論配置信息本地加密,還是通過擴展遠程獲取,最終通過調試,都能在程序中獲得配置的具體信息,這樣就能直接繞過我們的擴展,即我們的校驗就無效了。
c、最后我們決定,將基礎服務部分的內容進行擴展化。這樣既能不影響容易變更的業務邏輯的開發效率,同時也增加了系統的隱私性和基礎服務的效率。擴展化的服務越多,用戶需要破解和覆蓋的功能越多,用戶的開發成本就越大。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22622.html
摘要:上一篇擴展開發引導文章中。這篇文章就開始介紹使用工具來生成擴展項目文件注意這里的本身沒有這玩意,是我給自帶的起的別名這個工具就是還有點迷惑那不廢話了。至于其他參數自行了解。發現也是有這三個文件的。所以,不要質疑自己。 上一篇擴展開發引導文章中。創建了編寫擴展的三個基本文件。或許你會有個疑問PHP沒有類似的自動生成項目框架的工具嗎? 當然有。這篇文章就開始介紹使用 php-ext-cli...
摘要:下一代服務端開發下一代服務端開發第部門快速開始第章快速開始環境準備,,快速上手實現一個第章企業級服務開發從到語言的缺點發展歷程的缺點為什么是產生的背景解決了哪些問題為什么是的發展歷程容器的配置地獄是什么從到下一代企業級服務開發在移動開發領域 《 Kotlin + Spring Boot : 下一代 Java 服務端開發 》 Kotlin + Spring Boot : 下一代 Java...
摘要:記錄一下學習的軌跡。起步推薦用最新的。內建服務器這年頭大部分語言都支持這一出了。交互式的環境學習方便,推薦下家的是用寫的。結尾可以省略,然后可以簡寫成,于是上面的可以簡寫成當然像這種一行的,用也成練習題感謝出題搭好環境,寫出第一個。 記錄一下學習的軌跡。 入門資料 對我而言好的入門資料要符合兩個要求: 能夠切實幫助以比較正的方式入門 薄 真沒找到什么好的入門資料。沒有《Di...
摘要:這里看到,表明你的擴展已經加載成功了,現在就可以調用這個擴展函數了。是不是很簡單更多上面的例子還比較簡單,只是編寫了一個擴展函數。 PHP-X是我在2017年年初創建的一個新項目。這個項目的目標就是讓有一定工作經驗的PHP程序都能夠具備擴展開發的能力。 0x00 初衷 從2012年開始編寫swoole,現在算來已經有5個年頭了。我發現編寫一個 PHP 擴展這個工作非常艱難。PHP 程序...
摘要:無數的模板語言和框架應運而生但是技術始終被分割為前端和后端。這意味著一個頁面可以有很多的這并不會對其余的頁面有任何影響。提前綁定和編譯預測是一個非常有效的部署方式。最后,這是我們對于這個特定問題的貢獻。 Next.js 原文地址 Naoyuki Kanezawa (@nkzawa), Guillermo Rauch (@rauchg) 和 Tony Kovanen (@tonykova...
閱讀 1762·2021-11-24 09:39
閱讀 1551·2021-11-16 11:54
閱讀 3497·2021-11-11 16:55
閱讀 1655·2021-10-14 09:43
閱讀 1445·2019-08-30 15:55
閱讀 1233·2019-08-30 15:54
閱讀 3421·2019-08-30 15:53
閱讀 1338·2019-08-30 14:18