CN111984944B - 一种源代码处理方法、相关装置及存储介质 - Google Patents

一种源代码处理方法、相关装置及存储介质 Download PDF

Info

Publication number
CN111984944B
CN111984944B CN202010891847.9A CN202010891847A CN111984944B CN 111984944 B CN111984944 B CN 111984944B CN 202010891847 A CN202010891847 A CN 202010891847A CN 111984944 B CN111984944 B CN 111984944B
Authority
CN
China
Prior art keywords
subfile
developer
source code
file
security
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010891847.9A
Other languages
English (en)
Other versions
CN111984944A (zh
Inventor
黄领
张登超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Simplecredit Micro-Lending Co ltd
Original Assignee
Simplecredit Micro-Lending Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Simplecredit Micro-Lending Co ltd filed Critical Simplecredit Micro-Lending Co ltd
Priority to CN202010891847.9A priority Critical patent/CN111984944B/zh
Publication of CN111984944A publication Critical patent/CN111984944A/zh
Application granted granted Critical
Publication of CN111984944B publication Critical patent/CN111984944B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例公开了一种源代码处理方法、相关装置及计算机可存储介质,其中,该方法包括:安全组件获取项目源代码文件中多个子文件的文件名,获取针对多个子文件中的第一子文件对应的开发者信息、开发者所属公司域名以及开发者所使用设备的物理地址,其中,第一子文件为多个子文件中的任一子文件,根据文件名、开发者信息、开发者所属公司域名以及物理地址生成第一子文件的安全标识符,最后根据安全标识符对第一子文件进行保护。通过实施上述方法,可以实现对源代码的高效保护。

Description

一种源代码处理方法、相关装置及存储介质
技术领域
本申请涉及计算机领域,尤其涉及一种源代码处理方法、相关装置及存储介质。
背景技术
随着信息技术的快速发展,企业信息安全已逐步引起各企业的重视。对于互联网企业来说,开发过程中的源代码保护,已然成为企业的重点关注方向。目前大多数企业并未对源代码采取有效的保护措施,企业员工若是将源代码上传至公共代码托管平台,可能会导致企业数据资产的泄露或者被恶意攻击者利用等问题。因此,怎么样对源代码文件进行有效保护成为现如今一个热点问题。
发明内容
本申请实施例提供了一种源代码处理方法、相关装置及存储介质,可以实现对源代码的高效保护。
第一方面,本申请实施例提供了一种源代码处理方法,所述方法应用于集成开发环境,所述集成开发环境中安装有安全组件,包括:
获取项目源代码文件中多个子文件的文件名;
针对所述多个子文件中的第一子文件,获取所述第一子文件对应的开发者信息、开发者所属公司域名以及开发者所使用设备的物理地址,所述第一子文件为所述多个子文件中的任一子文件;
根据所述文件名、所述开发者信息、所述开发者所属公司域名以及所述物理地址生成所述第一子文件的安全标识符;
根据所述安全标识符对所述第一子文件进行保护。
第二方面,本申请实施例提供了一种源代码处理装置,所述装置应用于集成开发环境,所述集成开发环境中安装有安全组件,包括:
获取模块,用于获取项目源代码文件中多个子文件的文件名;
所述获取模块,用于针对所述多个子文件中的第一子文件,获取所述第一子文件对应的开发者信息、开发者所属公司域名以及开发者所使用设备的物理地址,所述第一子文件为所述多个子文件中的任一子文件;
处理模块,用于根据所述文件名、所述开发者信息、所述开发者所属公司域名以及所述物理地址生成所述第一子文件的安全标识符;
所述处理模块,用于根据所述安全标识符对所述第一子文件进行保护。
第三方面,本申请实施例提供了一种终端,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备、存储器和网络接口相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如第一方面所述的源代码处理方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如第一方面所述的源代码处理方法。
本申请实施例中,安全组件获取项目源代码文件中多个子文件的文件名,获取针对多个子文件中的第一子文件对应的开发者信息、开发者所属公司域名以及开发者所使用设备的物理地址,其中,第一子文件为多个子文件中的任一子文件,根据文件名、开发者信息、开发者所属公司域名以及物理地址生成第一子文件的安全标识符,最后根据安全标识符对第一子文件进行保护。通过实施上述方法,可以实现对源代码的高效保护,若是检测到源代码被非法操作时,可以通过安全标识符对源代码进行溯源管理。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种源代码处理系统的架构示意图;
图2是本申请实施例提供的一种源代码处理方法的流程示意图;
图3是本申请实施例提供的另一种源代码处理方法的流程示意图;
图4是本申请实施例提供的一种源代码处理装置的流程示意图;
图5是本申请实施例提供的一种终端的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,是本申请实施例提供的一种源代码处理系统的架构示意图,该源代码处理系统100包括第一终端设备101、第二终端设备102、管理设备103以及服务器104。其中,第一终端设备101和第二终端设备102的数量都可以包括多个,同时,第一终端设备101和第二终端设备102配置有集成开发环境(Integrated Development Environment,IDE),本申请所保护的安全组件(源代码泄露溯源安全组件)依附于该集成开发环境,该安全组件可以对源代码进行安全保护。服务器104与第一终端设备101、第二终端设备102、管理设备103都能进行通信连接,服务器104(对应于本申请的安全标识服务器)还用于对源代码文件以及源代码文件对应的安全标识符进行存储等。
在一种可能的实现方式中,第一终端设备101中的安全组件获取项目源代码文件中多个子文件的文件名,以及获取针对多个子文件中的第一子文件对应的开发者信息、开发者所属公司域名以及开发者所使用设备的物理地址,其中,第一子文件为多个子文件中的任一子文件,根据文件名、开发者信息、开发者所属公司域名以及物理地址生成第一子文件的安全标识符,第一终端设备101中的安全组件根据安全标识符对第一子文件进行保护。
进一步地,第一终端设备101将生成的安全标识符发送给服务器104,服务器104对安全标识符进行存储,该安全标识符与子文件是进行了关联的;第二终端设备102的安全组件检测是否有用户针对服务器104中存储的源代码子文件的操作信息,并检测该操作是否合法,若是不合法,就通知服务器104,服务器104再通知管理设备103,以使得管理设备103对应的企业管理者对源代码进行安全保护。
通过上述实施例,可以实现对源代码的高效保护,若是检测到源代码被非法操作时,可以通过安全标识符对源代码进行溯源管理。
请参见图2,图2是本申请实施例中一种源代码处理方法的流程示意图。如图2所示,本实施例中的源代码处理方法的流程可以包括:
S201、安全组件获取项目源代码文件中多个子文件的文件名。
其中,项目源代码文件包括多个子文件,安全组件依附于终端安装的集成开发环境。安全组件获取项目源代码文件中多个子文件的文件名,首先需要检测到在集成开发环境中打开(启用)项目源代码文件。
在一种可能的实现方式中,打开的项目源代码文件是已经开发完成的(即所有源代码已经编写完成)。此时,若是在集成开发环境中打开该项目源代码文件,安全组件就会自动读取项目源代码文件中每一个子文件的文件名。
在一种可能的实现方式中,打开的项目源代码文件是新项目或者该项目源代码文件是正在开发中的,这两种情况可以统称为项目源代码文件的开发周期。因此,在开发周期,不同的开发人员在集成开发环境中对每个子文件进行编译或者修改的时候,安全组件就会实时的监控每个子文件,并获取每个子文件的文件名。比如说,某个开发者在某一时刻创建了一个新的子文件,那么安全组件便会实时地记录这个新的子文件的文件名。
S202、针对多个子文件中的第一子文件,安全组件获取第一子文件对应的开发者信息、开发者所属公司域名以及开发者所使用设备的物理地址,第一子文件为多个子文件中的任一子文件。
由于项目源代码文件包括多个子文件,每个子文件对应的开发者可能是不一样的,因此需要对每个子文件进行相对应的获取处理。
在一种可能的实现方式中,在集成开发环境中打开了已经完成的项目源代码文件或者打开在开发周期的项目源代码文件之后,安全组件自动或者实时地检测并读取第一子文件(由于项目源代码文件有多个子文件,此处详细阐述对其中一个的处理)文本信息,并对文本信息中的注释文本信息进行解析。查找注释文本信息中是否有开发者信息,这里的开发者信息指的是开发者的名字(中文名、英文名或者拼音),若是检测到开发者信息,则对其进行记录;若是不存在开发者信息的相关字段,则将开发者信息默认地记为“all”。由于各个公司在集成开发环境中进行项目开发时都有一定的软件开发规范,该规范中要求包括公司的域名信息等,所以在根据注释文本信息获取开发者信息的同时,也获取开发者所属公司域名。获取到开发者信息后,安全组件会通过开发者信息记录每个开发者的物理地址(MAC地址),若是开发者在编写代码的注释文本信息时未编写开发者信息,安全组件可以通过子文件去检测开发者的网卡物理地址。其中,需要注意的是,获取开发者本地计算机的网络接口物理地址时,若是有多个网络接口,取任意一个接口地址的物理地址即可。
S203、安全组件根据文件名、开发者信息、开发者所属公司域名以及物理地址生成第一子文件的安全标识符。
在一种可能的实现方式中,安全组件在获取到第一子文件对应的开发者的物理地址之后,对该物理地址进行预处理,得到处理后的物理地址,并将处理后的物理地址与开发者所属公司域名一起通过加密算法得到第一加密字段。安全组件根据文件名、开发者信息以及第一加密字段生成第一子文件的安全标识符。这里的第一加密字段因为采用物理地址作为加密基础,所以该第一加密字段可以唯一的标识开发者和开发者的开发环境。
其中,得到第一加密字段的具体方式如:获取任意一个接口的物理地址,将物理地址中的“:”去掉,如物理地址为“38:f9:d3:a6:73:a3”,去掉冒号之后为:“38f9d3a673a3”;再将去掉冒号物理地址与开发者所属公司域名进行组合,若公司域名为“example.com”,则对应组合后为:“38f9d3a673a3example.com”;安全组件再通过加密算法对“38f9d3a673a3example.com”进行加密运算得到“7217f50c96575ea85b0f420a07a574263905249bd96c1fe34ee887e87bc29bcd”,其中,加密算法可以是SHA256加密算法;然后,安全组件每隔16个字符用“-”将加密得到的字符串进行分割,得到最终的第一加密字段:“7217f50c96575ea8-5b0f420a07a57426-3905249bd96c1fe3-4ee887e87bc29bcd”。再使用“-”将第一加密字段、开发者信息、开发者所属公司域名以及文件名组合成安全标识符,并写入到第一子文件的尾部,具体格式可以表示为:Lucy-example.com-test.java-7217f50c96575ea8-5b0f420a07a57426-3905249bd96c1fe3-4ee887e87bc29bcd。
进一步,开发者信息、开发者所属公司域名、文件名以及加密字段可以用一个映射表来进行表示,如表一所示,表一示出的是同一公司的项目源代码文件中的两个子文件对应的文件名、开发者信息以及加密字段。
表一
S204、安全组件根据安全标识符对第一子文件进行保护。
在一种可能的实现方式,安全组件将步骤S203得到的安全标识符写入第一子文件的位置,该第一位置具体可以是第一子文件的二进制内存空间。再采用预设处理方式对第一子文件指定位置的安全标识符进行屏蔽显示。因为源代码文件为集成开发环境所识别的字符格式文件,则安全组件添加安全标志符后会显示在内容处(会导致开发者知道),因此,安全组件会向集成开发环境发出屏蔽显示文件尾部的安全标识符。具体预设处理方式的执行步骤可以是:安全组件把安全标识符发送给集成开发环境,集成开发环境经过过滤匹配到相应的标识符后在第一子文件的二进制内存空间中存储该值,然后从再从第一子文件中尾部中删除安全标识符,只向显卡的内存地址空间发送剩余的源代码数据,然后展示给开发者。针对上述例子,展示给开发者的信息即为:Lucy-example.com-test.java,不包括加密字段,这样开发者所看到的子文件便不存在任何的安全标识符。
另外地,当开发者保存或者再次打开项目源代码文件中的任一子文件时,集成开发环境将二进制内存空间的安全标识符写入子文件尾部,这样就可以及时地为子文件标记安全标识符。其中,安全标识符只占几个字节的空间,所以对内存占用不高,不会造成任何性能影响。
本申请实施例中,安全组件获取项目源代码文件中多个子文件的文件名,获取针对多个子文件中的第一子文件对应的开发者信息、开发者所属公司域名以及开发者所使用设备的物理地址,其中,第一子文件为多个子文件中的任一子文件,根据文件名、开发者信息、开发者所属公司域名以及物理地址生成第一子文件的安全标识符,最后根据安全标识符对第一子文件进行保护。通过实施上述方法,可以实现对源代码的高效保护。
请参见图3,图3是本申请实施例中另一种源代码处理方法的流程示意图。如图3所示,本实施例中的源代码处理方法的流程可以包括:
S301、安全组件获取项目源代码文件中多个子文件的文件名。
S302、针对多个子文件中的第一子文件,安全组件获取第一子文件对应的开发者信息、开发者所属公司域名以及开发者所使用设备的物理地址,第一子文件为多个子文件中的任一子文件。
S303、安全组件根据文件名、开发者信息、开发者所属公司域名以及物理地址生成第一子文件的安全标识符。
其中,步骤S301~步骤S303已经在步骤S201~步骤S203中详细阐述了,这里便不再一一阐述了。
S304、安全组件将多个子文件中的每个子文件的安全标识符与项目源代码文件进行关联,并存储于安全标识服务器中。
在一种可能的实现方式中,安全组件可以和安全标识服务器进行通信,安全组件将多个子文件中的每个子文件的安全标识符与项目源代码文件进行关联,即项目源代码文件中的每个子文件都对应有一个安全标识符。安全组件除了将步骤S203得到的映射表发送给安全标识服务器,还将每一个子文件的安全标识符发送给安全标识服务器。通常情况下,一个团队的开发者开发完所有子文件后,会将各个子文件进行合并,合并后将形成一个完整的项目源代码文件。此时,若是某一个项目源代码文件中包含多个开发者信息,在合并时也要将每个开发者开发的子文件的安全标识符进行合并,合并后每个开发者对应一个安全标识符。假设有6个开发者信息,即有6个安全标识符,安全组件会将这6个安全标识符发送至安全标识服务器,以使得安全标识服务器可以对安全标识符进行存储。
S305、当检测到针对第二子文件的操作请求时,安全组件获取用户所使用设备的目标物理地址以及用户所属公司域名,第二子文件为项目源代码文件中的任一子文件。
在项目源代码文件开发完成后,有时候,企业内部开发者会有意或无意将其负责的某个源代码子文件上传至公共代码托管平台,此时,其他企业便可以在公共代码托管平台上下载该源代码子文件。又或者,基于利益驱动,企业内部开发者可能会将源代码子文件泄露给外部开发者。针对上述两种情况,终端设备上所配置的集成开发环境中的安全组件都会进行相应地处理,以保证源代码文件的安全性。
在一种可能的实现方式中,当检测到用户针对第二子文件(在公共代码托管平台下载的文件或者由内部人员泄露出去的文件)的操作请求时,安全组件则获取该用户所使用设备的目标物理地址以及该用户所属公司域名,第二子文件为项目源代码文件中的任一子文件。其中,操作请求具体可以指用户(外部开发者)在集成开发环境中对第二子文件进行打开操作、修改操作、复制操作等。
S306、安全组件根据目标物理地址以及用户所属公司域名生成第二加密字段,再从安全标识服务器中获取第二子文件的安全标识符,并从第二子文件的安全标识符中提取第三加密字段。
在一种可能的实现方式中,安全组件在获取到目标物理地址以及用户所属公司域名后,根据步骤S203中生成第一加密字段的方式生成第二子文件对应的第二加密字段。同时,安全组件从安全标识服务器中获取第二子文件对应的安全标识符,并解析该安全标识符,从中提取出第三加密字段(由第二子文件的原开发者信息以及原开发者的物理地址生成的加密字段)。
S307、安全组件将第二加密字段与第三加密字段进行对比。
在一种可能的实现方式中,安全组件将第二加密字段与第三加密字段进行对比。“7a6337fd22ccfce5-a9f1c6c9a31f4ab6-fa85cc1f0 0d1b261-b80c6284225ef69c”和“6caecd50f2aa52ef-46d3bb76b9c4552b-7ff919038d95147f-de5fa68151d4e297”,可以看出,这显然是两个不同的加密字段。
S308、若不一致,安全组件则向安全标识服务器发送项目源代码文件存在风险的通知信息,并拒绝操作请求。
在一种可能的实现方式中,当安全组件检测到第二加密字段与第三加密字段不一致,则向安全标识服务器发送项目源代码文件存在风险的通知信息,表明该开发者属于外部开发者,该第二子文件已经泄露。通知信息中还包括第二子文件的安全标识符的开发者信息、文件名和开发者所属公司域名,安全组件将这些信息都发送至安全标识服务器,以使得安全标识服务器根据开发者信息通知企业(公司)内部信息安全管理人员,开发者信息包括开发者信息、泄露的文件名。安全组件将存在风险的通知信息发送至安全标识服务器的同时,会拒绝外部开发者的请求操作,让外部开发者打开第二子文件失败,或者向外部开发者弹出“该第一子文件属于AA公司,请勿传播,请及时删除!”的提示框信息,让其他企业的外部开发者无法使用该代码,以此来实现对源代码文件的保护。
在一种可能的实现方式中,当安全组件检测到第二加密字段与第三加密字段不一致时,安全组件接收针对第二子文件输入的第四加密字段。若是第二子文件是经过授权的,即外部开发者可以对代码进行再次开发或使用,则第四加密字段可以是原开发者告知外部开发者的,相当于打开第二子文件的密码。安全组件将第四加密字段与从安全标识服务器获取的第二子文件的第三加密字段进行对比,若是一致,则说明该外部开发者已经拿到第二子文件的授权,安全组件则同意外部开发者的操作请求。与此同时,安全组件将生成的第二子文件对应的第二加密字段发送给安全标识服务器,安全标识服务器在接收到第二加密字段结合保存的第二子文件的安全标识符的开发者信息、文件名、公司域名和第三加密字段更新映射表。如表二所示,有外部开发者的新的加密字段和原开发者的加密字段。
表二
安全组件检测到某一子文件的映射表中新增了外部开发者新的加密字段后则单独生成一个条目,即把表二中的新的加密字段对应的一栏分离出来,生成一个新的映射表。其中,对应的开发者信息是新的,但开发者所属公司域名不变,文件名不变。得到的映射表如图三所示,“LiLei”则对应于被授权的外部开发者。
表三
由此一来,被授权的外部开发者也可以通过集成开发环境的安全组件进行校验,验证成功,就能对源代码文件进行正常使用了。
本申请实施例中,除了能实现图2中阐述的步骤外,安全组件还能将安全标识符发送给安全标识服务器进行存储,同时当检测对第二子文件的操作请求时,会获取用户所使用设备的目标物理地址以及用户所属的公司域名,根据目标物理地址以及用户所属的公司域名生成第二加密字段,再从安全标识服务器中获取第二子文件的安全标识符,并从第二子文件的安全标识符中提取第三加密字段,进而根据第二加密字段与第三加密字段的对比结果对第二文件进行相应地保护。通过本申请实施,可以实现对源代码的高效保护,若是检测到源代码被非法操作时,可以通过安全标识符对源代码进行溯源管理。
请参见图4,为本申请实施例提供的一种源代码处理装置的结构示意图,应用于集成开发环境,集成开发环境中安装有安全组件,该源代码处理装置40包括获取模块401、处理模块402、发送模块403,用于:
获取模块401,用于获取项目源代码文件中多个子文件的文件名;
所述获取模块401,用于针对所述多个子文件中的第一子文件,获取所述第一子文件对应的开发者信息、开发者所属公司域名以及开发者所使用设备的物理地址,所述第一子文件为所述多个子文件中的任一子文件;
处理模块402,用于根据所述文件名、所述开发者信息、所述开发者所属公司域名以及所述物理地址生成所述第一子文件的安全标识符;
所述处理模块402,用于根据所述安全标识符对所述第一子文件进行保护。
在一种可能的实现方式中,所述获取模块401用于针对所述多个子文件中的第一子文件,获取所述第一子文件对应的开发者信息、开发者所属公司域名以及开发者所使用设备的物理地址,包括:
针对所述多个子文件中的第一子文件,检测所述第一子文件的文本信息,并解析所述文本信息中的注释文本信息;
根据所述注释文本信息获取所述第一子文件的所述开发者信息和所述开发者所属公司域名;
根据所述开发者信息获取对应的开发者所使用设备的物理地址。
在一种可能的实现方式中,所述处理模块402用于根据所述子文件名、所述开发者信息、所述公司域名以及所述物理地址生成所述第一子文件的安全标识符,包括:
对所述物理地址进行预处理,得到处理后的物理地址;
根据所述处理后的物理地址和所述开发者所属公司域名生成第一加密字段;
根据所述文件名、所述开发者信息以及所述第一加密字段生成所述第一子文件的安全标识符。
在一种可能的实现方式中,所述处理模块402,用于根据所述安全标识符对所述第一子文件进行保护,包括:
将所述安全标识符写入所述第一子文件的指定位置;
采用预设处理方式对所述第一子文件指定位置的所述安全标识符进行屏蔽显示。
在一种可能的实现方式中,所述处理模块402,还用于:
将所述多个子文件中的每个子文件的安全标识符与所述项目源代码文件进行关联,并存储于安全标识服务器中。
在一种可能的实现方式中,所述处理模块402,用于所述根据所述安全标识符对所述第一子文件进行保护之后,所述获取模块401,还用于当检测到针对第二子文件的操作请求时,获取用户所使用设备的目标物理地址以及所述用户所属的公司域名,所述第二子文件为所述项目源代码文件中的任一子文件;
所述处理模块402,还用于根据所述目标物理地址以及所述用户所属的公司域名生成第二加密字段;
所述获取模块401,还用于从所述安全标识服务器中获取所述第二子文件的安全标识符,并从所述第二子文件的安全标识符中提取第三加密字段;
所述处理模块402,用于将所述第二加密字段与所述第三加密字段进行对比;
发送模块403,用于若不一致,则向所述安全标识服务器发送所述项目源代码文件存在风险的通知信息,并拒绝所述操作请求。
在一种可能的实现方式中,所述处理模块402,还用于:
接收针对所述第二子文件输入的第四加密字段,判断所述第四加密字段与所述第三加密字段是否一致;若一致,则同意所述操作请求。
本申请实施例中,安全组件通过获取模块401获取项目源代码文件中多个子文件的文件名,获取针对多个子文件中的第一子文件对应的开发者信息、开发者所属公司域名以及开发者所使用设备的物理地址,其中,第一子文件为多个子文件中的任一子文件,处理模块402根据文件名、开发者信息、开发者所属公司域名以及物理地址生成第一子文件的安全标识符,最后处理模块402根据安全标识符对第一子文件进行保护。通过实施上述方法,可以实现对源代码的高效保护。
请参见图5,图5是为本申请实施例提供的一种终端的结构示意图。该终端上配置有集成开发环境,该集成开发环境中安装有安全组件上,如图5所示,该终端包括:至少一个处理器501,输入设备503,输出设备504,存储器505,至少一个通信总线502。其中,通信总线502用于实现这些组件之间的连接通信。其中,输入设备503可以是控制面板或者麦克风等,输出设备504可以是显示屏等。其中,存储器505可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器505可选的还可以是至少一个位于远离前述处理器501的存储装置。其中处理器501可以结合图5所描述的装置,存储器505中存储一组程序代码,且处理器501,输入设备503,输出设备504调用存储器505中存储的程序代码,用于:
获取项目源代码文件中多个子文件的文件名;
针对所述多个子文件中的第一子文件,获取所述第一子文件对应的开发者信息、开发者所属公司域名以及开发者所使用设备的物理地址,所述第一子文件为所述多个子文件中的任一子文件;
根据所述文件名、所述开发者信息、所述开发者所属公司域名以及所述物理地址生成所述第一子文件的安全标识符;
根据所述安全标识符对所述第一子文件进行保护。
在一种可能的实现方式中,所述处理器501调用安全组件针对所述多个子文件中的第一子文件,获取所述第一子文件对应的开发者信息、开发者所属公司域名以及开发者所使用设备的物理地址,包括:
针对所述多个子文件中的第一子文件,检测所述第一子文件的文本信息,并解析所述文本信息中的注释文本信息;
根据所述注释文本信息获取所述第一子文件的所述开发者信息和所述开发者所属公司域名;
根据所述开发者信息获取对应的开发者所使用设备的物理地址。
在一种可能的实现方式中,所述处理器501调用安全组件根据所述子文件名、所述开发者信息、所述开发者所属公司域名以及所述物理地址生成所述第一子文件的安全标识符,包括:
对所述物理地址进行预处理,得到处理后的物理地址;
根据所述处理后的物理地址和所述开发者所属公司域名生成第一加密字段;
根据所述文件名、所述开发者信息以及所述第一加密字段生成所述第一子文件的安全标识符。
在一种可能的实现方式中,所述处理器501调用安全组件根据所述安全标识符对所述第一子文件进行保护,包括:
将所述安全标识符写入所述第一子文件的指定位置;
采用预设处理方式对所述第一子文件指定位置的所述安全标识符进行屏蔽显示。
在一种可能的实现方式中,所述处理器501调用所述安全组件,还用于:
当检测到针对第二子文件的操作请求时,获取用户所使用设备的目标物理地址以及所述用户所属的公司域名,所述第二子文件为所述项目源代码文件中的任一子文件;
根据所述目标物理地址以及所述用户所属的公司域名生成第二加密字段;
从所述安全标识服务器中获取所述第二子文件的安全标识符,并从所述第二子文件的安全标识符中提取第三加密字段;
将所述第二加密字段与所述第三加密字段进行对比;
若不一致,则向所述安全标识服务器发送所述项目源代码文件存在风险的通知信息,并拒绝所述操作请求。
在一种可能的实现方式中,所述处理器501调用所述安全组件,还用于:
接收针对所述第二子文件输入的第四加密字段,判断所述第四加密字段与所述第三加密字段是否一致;
若一致,则同意所述操作请求。
本申请实施例中,终端的处理器501调用安全组件获取项目源代码文件中多个子文件的文件名,获取针对多个子文件中的第一子文件对应的开发者信息、开发者所属公司域名以及开发者所使用设备的物理地址,其中,第一子文件为多个子文件中的任一子文件,根据文件名、开发者信息、开发者所属公司域名以及物理地址生成第一子文件的安全标识符,最后根据安全标识符对第一子文件进行保护。通过实施上述方法,可以实现对源代码的高效保护,若是检测到源代码被非法操作时,可以通过安全标识符对源代码进行溯源管理。
所述处理器501可以是中央处理器501(central processing unit,CPU)。在一个实施例中,所述处理器501还可以是图形处理器501(Graphics Processing Unit,GPU)。所述处理器501也可以是由CPU和GPU的组合。在所述电子设备中,可以根据需要包括多个CPU和GPU进行相应的根证书管理。在一个实施例中,所述存储器505用于存储程序指令。所述处理器501可以调用所述程序指令,实现如本申请实施例中上述涉及的各种方法。
本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序指令,该程序指令被执行时,用于实现上述实施例中描述的相应方法。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本申请各个实施例上述方法的全部或部分步骤。其中,而前述的存储介质可包括:U盘、移动硬盘、磁碟、光盘、只读存储器(英文:Read-Only Memory,缩写:ROM)或者随机存取存储器(英文:Random Access Memory,缩写:RAM)等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (7)

1.一种源代码处理方法,其特征在于,所述方法应用于集成开发环境,所述集成开发环境中安装有安全组件,所述方法包括:
获取项目源代码文件中多个子文件的文件名;
针对所述多个子文件中的第一子文件,获取所述第一子文件对应的开发者信息、开发者所属公司域名以及开发者所使用设备的物理地址,所述第一子文件为所述多个子文件中的任一子文件;
对所述物理地址进行预处理,得到处理后的物理地址,根据所述处理后的物理地址和所述开发者所属公司域名生成第一加密字段;
根据所述文件名、所述开发者信息以及所述第一加密字段生成所述第一子文件的安全标识符;
将所述安全标识符写入所述第一子文件的指定位置;
采用预设处理方式对所述第一子文件指定位置的所述安全标识符进行屏蔽显示;
当检测到针对第二子文件的操作请求时,获取用户所使用设备的目标物理地址以及所述用户所属公司域名,所述第二子文件为所述项目源代码文件中的任一子文件;
根据所述目标物理地址以及所述用户所属公司域名生成第二加密字段;
从安全标识服务器中获取所述第二子文件的安全标识符,并从所述第二子文件的安全标识符中提取第三加密字段;
将所述第二加密字段与所述第三加密字段进行对比;
若不一致,则向所述安全标识服务器发送所述项目源代码文件存在风险的通知信息,并拒绝所述操作请求。
2.根据权利要求1所述的方法,其特征在于,所述针对所述多个子文件中的第一子文件,获取所述第一子文件对应的开发者信息、开发者所属公司域名以及开发者所使用设备的物理地址,包括:
针对所述多个子文件中的第一子文件,检测所述第一子文件的文本信息,并解析所述文本信息中的注释文本信息;
根据所述注释文本信息获取所述第一子文件的所述开发者信息和所述开发者所属公司域名;
根据所述开发者信息获取对应的开发者所使用设备的物理地址。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述多个子文件中的每个子文件的安全标识符与所述项目源代码文件进行关联,并存储于安全标识服务器中。
4.根据权利要求1所述的方法,其特征在于,若所述第二加密字段与所述第三加密字段不一致,所述方法还包括:
接收针对所述第二子文件输入的第四加密字段,判断所述第四加密字段与所述第三加密字段是否一致;
若一致,则同意所述操作请求。
5.一种源代码处理装置,其特征在于,所述装置应用于集成开发环境,所述集成开发环境中安装有安全组件,所述装置包括:
获取模块,用于获取项目源代码文件中多个子文件的文件名;
所述获取模块,用于针对所述多个子文件中的第一子文件,获取所述第一子文件对应的开发者信息、开发者所属公司域名以及开发者所使用设备的物理地址,所述第一子文件为所述多个子文件中的任一子文件;
处理模块,用于对所述物理地址进行预处理,得到处理后的物理地址,根据所述处理后的物理地址和所述开发者所属公司域名生成第一加密字段;
所述处理模块,还用于根据所述文件名、所述开发者信息以及所述第一加密字段生成所述第一子文件的安全标识符;
所述处理模块,还用于将所述安全标识符写入所述第一子文件的指定位置;
所述处理模块,还用于采用预设处理方式对所述第一子文件指定位置的所述安全标识符进行屏蔽显示;
所述获取模块,还用于当检测到针对第二子文件的操作请求时,获取用户所使用设备的目标物理地址以及所述用户所属公司域名,所述第二子文件为所述项目源代码文件中的任一子文件;
所述处理模块,还用于根据所述目标物理地址以及所述用户所属公司域名生成第二加密字段;
所述获取模块,还用于从安全标识服务器中获取所述第二子文件的安全标识符,并从所述第二子文件的安全标识符中提取第三加密字段;
所述处理模块,还用于将所述第二加密字段与所述第三加密字段进行对比;
所述处理模块,还用于若不一致,则向所述安全标识服务器发送所述项目源代码文件存在风险的通知信息,并拒绝所述操作请求。
6.一种终端,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备、存储器和网络接口相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-4任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-4任一项所述的方法。
CN202010891847.9A 2020-08-28 2020-08-28 一种源代码处理方法、相关装置及存储介质 Active CN111984944B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010891847.9A CN111984944B (zh) 2020-08-28 2020-08-28 一种源代码处理方法、相关装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010891847.9A CN111984944B (zh) 2020-08-28 2020-08-28 一种源代码处理方法、相关装置及存储介质

Publications (2)

Publication Number Publication Date
CN111984944A CN111984944A (zh) 2020-11-24
CN111984944B true CN111984944B (zh) 2024-04-19

Family

ID=73441046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010891847.9A Active CN111984944B (zh) 2020-08-28 2020-08-28 一种源代码处理方法、相关装置及存储介质

Country Status (1)

Country Link
CN (1) CN111984944B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289632A (zh) * 2011-08-30 2011-12-21 武汉大学 一种在软件源代码未知情况下对可执行文件进行加密方法
CN102411685A (zh) * 2011-10-17 2012-04-11 无锡诺宝科技发展有限公司 一种结合mac地址保护版权的方法
CN203206281U (zh) * 2012-12-21 2013-09-18 中建材集团进出口公司 源代码保护机和源代码保护系统
CN106709362A (zh) * 2016-12-06 2017-05-24 武汉斗鱼网络科技有限公司 文件加密方法及装置、文件解密方法及装置
CN107193622A (zh) * 2017-05-16 2017-09-22 北京小米移动软件有限公司 代码编译的处理方法、装置及终端
CN108664773A (zh) * 2018-04-26 2018-10-16 北京三快在线科技有限公司 Java源代码的保护方法及装置
CN109740315A (zh) * 2018-12-28 2019-05-10 深圳前海微众银行股份有限公司 基于安卓平台的常量保护方法、装置、设备及存储介质
CN110572358A (zh) * 2019-07-30 2019-12-13 重庆小雨点小额贷款有限公司 数据泄露处理方法、装置、电子设备及存储介质
CN110968872A (zh) * 2019-11-20 2020-04-07 北京国舜科技股份有限公司 文件漏洞的检测处理方法、装置、电子设备及存储介质
CN111159658A (zh) * 2019-12-16 2020-05-15 广州三七互娱科技有限公司 字节码处理方法、系统、装置、计算机设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8863082B2 (en) * 2011-09-07 2014-10-14 Microsoft Corporation Transformational context-aware data source management

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289632A (zh) * 2011-08-30 2011-12-21 武汉大学 一种在软件源代码未知情况下对可执行文件进行加密方法
CN102411685A (zh) * 2011-10-17 2012-04-11 无锡诺宝科技发展有限公司 一种结合mac地址保护版权的方法
CN203206281U (zh) * 2012-12-21 2013-09-18 中建材集团进出口公司 源代码保护机和源代码保护系统
CN106709362A (zh) * 2016-12-06 2017-05-24 武汉斗鱼网络科技有限公司 文件加密方法及装置、文件解密方法及装置
CN107193622A (zh) * 2017-05-16 2017-09-22 北京小米移动软件有限公司 代码编译的处理方法、装置及终端
CN108664773A (zh) * 2018-04-26 2018-10-16 北京三快在线科技有限公司 Java源代码的保护方法及装置
CN109740315A (zh) * 2018-12-28 2019-05-10 深圳前海微众银行股份有限公司 基于安卓平台的常量保护方法、装置、设备及存储介质
CN110572358A (zh) * 2019-07-30 2019-12-13 重庆小雨点小额贷款有限公司 数据泄露处理方法、装置、电子设备及存储介质
CN110968872A (zh) * 2019-11-20 2020-04-07 北京国舜科技股份有限公司 文件漏洞的检测处理方法、装置、电子设备及存储介质
CN111159658A (zh) * 2019-12-16 2020-05-15 广州三七互娱科技有限公司 字节码处理方法、系统、装置、计算机设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Java软件保护机制的研究与实现;尹艳阳 等;《现代计算机(专业版)》;27-31 *
基于Snort的DDoS攻击检测系统研究与设计;李星;《中国优秀硕士学位论文全文数据库 信息科技辑》(第08期);I139-146 *

Also Published As

Publication number Publication date
CN111984944A (zh) 2020-11-24

Similar Documents

Publication Publication Date Title
US7788730B2 (en) Secure bytecode instrumentation facility
EP3674954B1 (en) Security control method and computer system
US9953162B2 (en) Rapid malware inspection of mobile applications
JP6166839B2 (ja) 実行時のアプリケーションメソッドを置き換えるためのシステム及び方法
CN105453102B (zh) 用于识别已泄漏的私有密钥的系统和方法
US9270684B2 (en) Providing a domain to IP address reputation service
WO2015023093A1 (ko) 해시를 이용한 동적코드의 무결성 검증 방법
US11522901B2 (en) Computer security vulnerability assessment
CN110070360B (zh) 一种事务请求处理方法、装置、设备及存储介质
WO2016024838A1 (ko) 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템
CN107111717A (zh) 升级虚拟机上的安全引导策略
WO2022078366A1 (zh) 应用保护方法、装置、设备及介质
Müller et al. Processing dangerous paths
US9519780B1 (en) Systems and methods for identifying malware
CN109522683B (zh) 软件溯源方法、系统、计算机设备及存储介质
Newsham et al. Breaking forensics software: Weaknesses in critical evidence collection
CN111984944B (zh) 一种源代码处理方法、相关装置及存储介质
CN111783119A (zh) 表单数据安全控制方法、装置、电子设备及存储介质
US20240028727A1 (en) Steganographic modification detection and mitigation for enhanced enterprise security
US11138319B2 (en) Light-weight context tracking and repair for preventing integrity and confidentiality violations
US20050010752A1 (en) Method and system for operating system anti-tampering
US20230137661A1 (en) Verification method and verification system for information and communication safety protection mechanism
US20210350006A1 (en) Systems and methods for identifying software vulnerabilities in embedded device firmware
JP2021111384A (ja) 不正なメモリダンプ改変を防ぐシステムおよび方法
Ostrovskaya et al. Practical Memory Forensics: Jumpstart effective forensic analysis of volatile memory

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant