用php开发的项目,怎么保证代码的不被开发人员泄密

kisshua 发布于 2016/03/09 10:52
阅读 960
收藏 0
用php开发的项目,怎么保证代码的不被开发人员泄密,多人协助,只想开发人员只看到自己负责开发的源码,但是能保证系统整体调试运行。那位高手指教下
加载中
0
潇洒非常
潇洒非常

你可以分成多个模块,不同的模块列入不同的版本管理。相应的开发人员只给开通相应的模块权限。

kisshua
kisshua
我目前打算把核心的代码加密,这部分代码就不公开了
kisshua
kisshua
系统是这样分的,但是运行每个模块有接口调用,前台UI还是一体的
0
eechen
eechen
比如我有一套代码,放在这里:
/png/www/example.com/public_html/index.php
导出成opcode后,在这里:
/png/php/opcache_file_cache/xxx/png/www/example.com/public_html/index.php.bin
然后把 /png/www/example.com/public_html/index.php 内容清空,但保留文件.
然后配置不缓存的白名单,便于开发:
opcache.blacklist_filename=/png/php/opcache_blacklist
opcache_blacklist内容比如:
; 不缓存dev这个目录下的PHP文件
/png/www/example.com/public_html/dev/
; 不缓存cache_开头的PHP文件
/png/www/example.com/public_html/dev/cache/cache_
生成缓存算法opcache_compile_file.php参考:
PHP7中用opcache.file_cache导出脚本opcode实现源代码保护
<?php
function getfiles( $path , &$files = array() ) {
    if ( !is_dir( $path ) ) return null;
    $handle = opendir( $path );
    while ( false !== ( $file = readdir( $handle ) ) ) {
        if ( $file != '.' && $file != '..' ) {
            $path2 = $path . '/' . $file;
            if ( is_dir( $path2 ) ) {
                getfiles( $path2 , $files );
            } else {
                if ( preg_match( "/\.(php)$/i" , $file ) ) {
                    $files[] = $path2;
                }
            }
        }
    }
    return $files;
}
// 获取指定目录及其子目录下的所有PHP文件
$files = getfiles('/png/www/example.com/public_html/');
foreach($files as $file){
    opcache_compile_file($file); //编译PHP文件生成opcode
    file_put_contents($file, ''); //清空原来的PHP脚本
    echo $file."\n";
}
echo 'Total PHP Files: '.count($files)."\n";




0
老陌
老陌
核心价值 应该是人,而不是代码。
kisshua
kisshua
团队建立起来了,参与人员多,难免有些代码需要保护,防止某些人员泄露。以前人员不多,基本都是放开的。现在是领导要求
0
行业协汇袁斌
行业协汇袁斌

你可以把核心代码做成opcode缓存,

其他人就看不到源码了。

返回顶部
顶部