4
回答
用php开发的项目,怎么保证代码的不被开发人员泄密
极速云服务器,低至1.04元/天>>>   
用php开发的项目,怎么保证代码的不被开发人员泄密,多人协助,只想开发人员只看到自己负责开发的源码,但是能保证系统整体调试运行。那位高手指教下
举报
kisshua
发帖于2年前 4回/796阅
共有4个答案 最后回答: 2年前

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

--- 共有 2 条评论 ---
kisshua我目前打算把核心的代码加密,这部分代码就不公开了 2年前 回复
kisshua系统是这样分的,但是运行每个模块有接口调用,前台UI还是一体的 2年前 回复
比如我有一套代码,放在这里:
/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";




核心价值 应该是人,而不是代码。
--- 共有 1 条评论 ---
kisshua团队建立起来了,参与人员多,难免有些代码需要保护,防止某些人员泄露。以前人员不多,基本都是放开的。现在是领导要求 2年前 回复
顶部