一种代码借阅保护方法和系统与流程

文档序号:22256846发布日期:2020-09-18 13:49阅读:120来源:国知局
一种代码借阅保护方法和系统与流程

本发明属于信息保护领域,具体涉及一种代码借阅保护方法和系统。



背景技术:

在软件开发行业,有许多优秀的开源代码,大家可以公开查阅到;但对于企业内部,软件的源代码是企业无形的核心资产,由于人员多且流动性大等因素,非项目组的人员,是没权限查看此项目的权限;有人尝试通过一些非正常渠道,比如私人关系,让对方把相应代码复制或文件传输发给他,或者尝试获取有权限人的本地磁盘文件,从而获取到代码,这些方式给源代码管理带来很多风险,导致源代码被漏泄。代码本地化或web服务形式不能很好的控制源代码的安全性的流通和操作,容易被私下复制、剪切、打印、向外传输文件,从而无法保护好源代码。因此,如何方便地兼顾源代码的流转使用与保护源代码的安全性,成为本领域亟待解决的问题。



技术实现要素:

本发明提出一种代码借阅保护方法和系统,解决了现有技术中代码本地化或web服务形式不能很好的控制源代码的安全性的流通和操作,容易被私下复制、剪切、打印、向外传输文件的问题。

本发明的技术方案是这样实现的:

一种代码借阅保护方法,包括以下步骤:

s1,构建存储代码的云端服务器和专用的云代码客户端,通过云代码客户端的编辑器发起访问和编辑云端服务器的代码的请求;

s2,在云代码客户端创建项目,并根据该项目的文件目录设定项目权限;

s3,若上述项目向外借阅,将该项目的子目录或文件作为借阅模块,发布到借阅库;

s4,向借阅库发起项目权限内的借阅请求,若请求审批通过,则执行下一步;

s5,检出并查看借阅模块的代码。

作为本发明的一个优选实施例,云代码客户端的编辑器禁止内存扫描、复制和剪切代码的操作采用以下方法:

探测第三方工具的调试,允许系统本身进程接管内核层打开进程句柄的函数,禁止非系统本身进程打开云代码客户端进程的句柄;

或者,通过apihook的方式进行挂钩,禁止数据写入剪切板;

或者,在云端服务器和云代码客户端设置多次加密验证。

作为本发明的一个优选实施例,步骤s2具体包括以下步骤:

s201,创建人填写新建项目的相关信息;

s202,创建人根据分配的svn路径权限,通过用户名和密码验证是否有此svn路径的权限,若验证失败,则创建项目失败,否则执行下一步;

s203,若创建人的直属领导审批通过,则项目创建成功,否则创建项目失败;

s204,创建人根据该项目的文件目录设定项目成员对应的项目权限以及是否对外借阅。

作为本发明的一个优选实施例,步骤s3中将借阅模块发布到借阅库之前设置借阅模块的过期时间、借阅期限、打开次数及时长。

作为本发明的一个优选实施例,步骤s5具体包括以下步骤:

s501,获取借阅模块的创建人标识和借阅模块编号,构建借阅模块的目录格式;

s502,通过借阅模块编号获取此借阅模块的项目信息,包括项目编号、svn路径;

s503,通过创建人标识,获取已保存在数据库中的创建人svn加密帐密;

s504,判断在云端服务器上借阅模块目录是否已存在,如果已存在,则执行当前svn路径的帐密验证和更新操作;否则,先创建目录,再执行当前svn路径的帐密验证,检出svn路径的代码;

s505,查看借阅模块的代码。

一种代码借阅保护系统,包括存储代码的云端服务器和访问和编辑云端服务器的代码的云代码客户端,所述云端服务器和云代码客户端交互连接;

所述云代码客户端用于供项目创建方创建新项目,根据该项目的文件目录设定项目权限,若设定对外借阅,则将该项目的子目录或文件作为借阅模块,发布到借阅库;还用于供用户发起借阅请求,借阅请求审批通过后检出并查看借阅模块的代码;

所述云端服务器包括借阅库,所述借阅库用于集中存储各个借阅模块。

作为本发明的一个优选实施例,所述云代码客户端包括代码保护单元,所述代码保护单元禁止内存扫描、复制和剪切代码的操作。

作为本发明的一个优选实施例,所述云代码客户端包括审批单元,所述审批单元用于审批创建项目和借阅请求。

本发明的有益效果在于:能够在最小权限下保护代码的安全性,通过专用客户端和严格审批流程,实现在有限情况下借阅到源代码,确保源代码的管理规范和安全,避免源代码文件有意或无意泄露、扩散。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种代码借阅保护方法一个实施例的流程图;

图2为本发明一种代码借阅保护方法的创建项目的流程图;

图3为本发明一种代码借阅保护方法的发布借阅的流程图;

图4为本发明一种代码借阅保护方法的查阅代码流程图;

图5为本发明一种代码借阅保护系统一个实施例的原理框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1-图4所示,本发明提出了一种代码借阅保护方法,包括以下步骤:

s1,构建存储代码的云端服务器和专用的云代码客户端,通过云代码客户端的编辑器发起访问和编辑云端服务器的代码的请求;代码存放在远程服务器,所有代码不存放在用户本地;通过指定的云代码客户端的编辑器来访问和操作代码,防止内存扫描、复制和剪切等操作。

云代码客户端的编辑器禁止内存扫描、复制和剪切代码的操作采用以下方法:

探测第三方工具的调试,允许系统本身进程接管内核层打开进程句柄的函数,禁止其他非系统本身进程如cheatengine,ida.exe打开云代码客户端进程的句柄;

或者,通过apihook的方式进行挂钩,禁止数据写入剪切板,防止复制和剪切操作;

或者,在云端服务器和云代码客户端设置多次加密验证,如云代码客户端发aes(rsa(userid|versionid|ip|xxx)),服务器收到消息后解密,接着判断版本号,如果版本过低或跳过强更版本,提示不能使用,要升级客户端版本。

s2,在云代码客户端创建项目,并根据该项目的文件目录设定项目权限;

步骤s2具体包括以下步骤:

s201,创建人填写新建项目的相关信息;

s202,创建人根据分配的svn路径权限,通过用户名和密码验证是否有此svn路径的权限,若验证失败,则创建项目失败,否则执行下一步;

s203,若创建人的直属领导审批通过,则项目创建成功,否则创建项目失败;

s204,创建人根据该项目的文件目录设定项目成员对应的项目权限以及是否对外借阅。

创建人根据分配的svn路径权限,通过用户名和密码验证是否有此svn路径的权限,如果验证通过,可以发起申请创建项目,得到所属主管审批后,项目创建成功,同时项目创建者可以按不同目录授权其他成员拥有此项目权限,成员可以在这里编辑代码。

s3,若上述项目向外借阅,将该项目的子目录或文件作为借阅模块,发布到借阅库;

创建人创建某一项目,可指定此项目中的子目录或文件作为借阅模块。设置以上选择的借阅模块的过期时间、借阅期限,如果已达到过期时间、超过借阅期限,借阅权限失效。系统默认设置允许每个文件打开的次数及时长,达到限制后,则借阅权限失效。用户的借阅权限失效后,有需要可以重新申请。

s4,向借阅库发起项目权限内的借阅请求,若请求审批通过,则执行下一步;

用户向对应的借阅模块发起申请;该用户的直属主管确定是否有必要借阅,如果有必要,即可同意审批,否则拒绝;如果申请人的直属主管审批通过后,创建人会进行二次审批,如果不同意,则借阅流程结束;如果同意,则审批通过后,借阅人拥有权限查看借阅模块文件内容。

s5,检出并查看借阅模块的代码。查阅代码本质上是使用创建人的svn帐密来检出代码。

步骤s5具体包括以下步骤:

s501,获取借阅模块的创建人标识(编号)和借阅模块编号,构建借阅模块的目录格式(借阅/创建人标识/借阅模块编号),如:borrow/1234/0008。

s502,通过借阅模块编号获取此借阅模块的项目信息,包括项目编号、svn路径;

s503,通过创建人标识,获取已保存在数据库中的创建人svn加密帐密;

s504,判断在云端服务器上借阅模块目录(如borrow/1234/0008)是否已存在,如果已存在,则执行当前svn路径的帐密验证和更新操作;否则,先创建目录,再执行当前svn路径的帐密验证,检出svn路径的代码;

s505,查看借阅模块的代码。代码检出完成后,用户能正常查看相关内容。

本发明还用于判断用户的借阅期限和次数限制,具体包括,每次打开借阅模块前,判断剩余打开次数,剩余为0时,结束查看。每打开一个文件时,系统设定了借阅倒计时,倒计时为0时,此次查阅结束。一个文件的打开次数超过设置次数后,不能继续查看。借阅期限达到指定的时间后,此次借阅结束。

若用户的借阅的权限失效后,如果有需要,需要重新发起申请。

如图5所示,本发明还提出了一种代码借阅保护系统,包括存储代码的云端服务器和访问和编辑云端服务器的代码的云代码客户端,云端服务器和云代码客户端交互连接;

云代码客户端用于供项目创建方创建新项目,根据该项目的文件目录设定项目权限,若设定对外借阅,则将该项目的子目录或文件作为借阅模块,发布到借阅库;还用于供用户发起借阅请求,借阅请求审批通过后检出并查看借阅模块的代码;

云端服务器包括借阅库,借阅库用于集中存储各个借阅模块。

云代码客户端包括代码保护单元,代码保护单元禁止内存扫描、复制和剪切代码的操作。云代码客户端包括审批单元,审批单元用于审批创建项目和借阅请求。

综上所述,源代码在本地磁盘或web服务形式(类似github)托管方式存储,流转和使用,在无代码权限下想借鉴下类似功能的源代码,是存在一定的困难。要么通过非正式途径获取到某些文件,要么走正常流程申请,层层评估审批后,还不能保证源代码的安全性。

而本发明建立在本地磁盘无代码化,源代码通过远程服务器的专用客户端方式访问,其它渠道是无法请求到,每个项目按模块划分,对每个人开放对应的模块权限,如果超过个人权限的,可以通过借阅模式来申请查阅。

本发明本质上在于开发人员不能拥有本地代码权限,只能通过专用客户端来获取远程服务器的代码,专用客户端做好保护驱动,除了内容不能复制、剪切到编辑器之外,编辑器也加上特殊水印,同时防止逆向工程和内存扫描,杜绝非正常渠道有意或无意泄露、扩散代码。

在代码保护上,不将代码放到本地磁盘,仅通过专用客户端的编辑器获取远程服务器的代码,代码不能复制、剪切到编辑器之外,并且在编辑器上加上水印,同时客户端也防止逆向工程和内存扫描等保护措施。

以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1