博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
起步-学习php扩展开发的背景
阅读量:6257 次
发布时间:2019-06-22

本文共 1114 字,大约阅读时间需要 3 分钟。

php是解释性语言,不需要编译。对于用php写的产品,如果需要直接源码安装到客户的运行环境中,则存在很大的安全隐患。客户甚至可以把你的产品直接做二次部署或者销售。目前我们公司就遇到这个问题。

1. 利用zend guard

Zend Guard不仅可以实现对PHP应用的脚本进行加密保护和对PHP应用的产品进行商业许可证管理,还可以为许多软件生产商、IT服务提供商提供完善的加密和安全的产品发布系统。(摘自百度百科)
虽然zend guard 能增加一定的安全性,但是网上zend guard解码工具一大堆,zend guard只能做最基本的防护。

2.开发php扩展

php是用C语言实现的,php流行的很大一个原因也是因为有大量开发者通过扩展实现大量通用的功能供广大社区开发者使用。php扩展开发的意义和好处,鸟哥也在其博客中有过阐述:
3、公司产品的分析

进行php扩展开发,首先需要有不错的C/C++基础,同时也需要熟悉php扩展API。有一定的技术门槛,同样对于一个以php为主要技术栈的初创性公司来说,需要考虑技术和时间成本。

php扩展化的优势:

  • 产品安全性和私密性好

  • 系统性能高

php扩展化的劣势:

  • 开发效率低 php的优势之一就是开发效率高,需要选择系统合适的模块进行扩展化。

  • 维护成本高 越多的模块扩展化,则要求团队中需要更多的人即熟悉C 又懂php,人力成本也将增大,同时,因为扩展需要编译,调试和bug修复的成本也将增大。

通过讨论和分析我们目前产品的情况,如图所示:

Center

Center

思路:

我们首要目标是保证产品系统的隐私性,即我们会在扩展中对用户的一些信息和权限进行校验。同时,为了保证用户不能绕过我们的校验,则需要扩展中的功能是系统必须的,用户如果需要重写,需要很大的成本。

a、起初,讨论过程中,大家的意见都是建议尽量少的代码改动,把入口进行扩展化。但是我们目前系统是基于yii开发的,如果更改yii框架中的入口内容,这样做无法解决问题:1、对于熟悉yii框架的开发人员来说,他可以轻易绕过你的扩展内容。2、不利用后续yii框架的升级。

b、第二种方案配置文件扩展化,第一反应,把配置文件放在扩展中,如果去掉扩展,系统就无法正常运行。但是,仔细思考后,就发现,无论配置信息本地加密,还是通过扩展远程获取,最终通过调试,都能在程序中获得配置的具体信息,这样就能直接绕过我们的扩展,即我们的校验就无效了。

c、最后我们决定,将基础服务部分的内容进行扩展化。这样既能不影响容易变更的业务逻辑的开发效率,同时也增加了系统的隐私性和基础服务的效率。扩展化的服务越多,用户需要破解和覆盖的功能越多,用户的开发成本就越大。

转载地址:http://plxsa.baihongyu.com/

你可能感兴趣的文章
申小雨命案审理延期至3月5日 警方将翻译嫌犯口供
查看>>
自动精简配置&重复数据删除核心技术点及其经济效应探究
查看>>
cncert网络安全周报35期 境内被植入后门的政府网站112个 环比上涨24.4%
查看>>
物联网到底是不是泡沫,且看英特尔交出的答案
查看>>
IPv6太落后了:中国加速服务器援建
查看>>
安防大数据应用国家工程实验室在乌鲁木齐成立
查看>>
物理引擎中velocity的单位是个什么鬼?
查看>>
[译] 全新 Android 注入器 : Dagger 2 (二)
查看>>
为什么要评审代码?
查看>>
小程序开发前的准备工作之【深入封装Component】
查看>>
AFN3.0源码解析
查看>>
oracle的drop命令
查看>>
设计与梳理企业二级流程的路线方法
查看>>
Python正则表达式指南
查看>>
使用css3制作渐变分割线
查看>>
垃圾回收概念与算法
查看>>
IconFont 图标svg
查看>>
TFS实现需求工作项自动级联保存
查看>>
springmvc 4.x 处理json 数据时中文乱码
查看>>
nginx 重启命令
查看>>