1.本技术涉及计算机技术领域,特别涉及一种
源代码访问方法及装置。
背景技术:
2.在web网页中,如果页面直接使用的是javascript源代码,则通过浏览器可以直接查看到源码,代码保密性和安全性无法得到保障。若为了保证源代码的保密性和安全性,浏览器可以使用对源代码进行处理,得到的不具可读性的生产代码,但是,当程序出现问题时,在线上环境因生产代码不可读,导致难以通过浏览器对程序进行调试。
3.因此,在使用生产代码提供服务的情况下,如何在保证生产代码切换为源代码面向开发者提供调试的同时,保证源代码访问的安全性成为亟待解决的问题。
技术实现要素:
4.为解决上述技术问题,本技术实施例提供一种源代码访问方法及装置,以达到在保证生产代码切换为源代码面向开发者提供调试的同时,保证源代码访问的安全性的目的,技术方案如下:
5.一种源代码访问方法,应用于后端服务器,该方法包括:
6.响应于浏览器的页面访问请求,加载生产代码,将
所述生产代码发送给所述浏览器,所述生产代码为对源代码进行隐藏处理得到的;
7.响应于所述浏览器的源代码获取请求,若从所述源代码获取请求中获取到所述源代码的伪
路径,则将所述源代码的伪路径发送给反向代理服务器,以使所述反向代理服务器查与所述源代码的伪路径匹配的真实路径,若查到,则返回所述真实路径给所述后端服务器;
8.其中,所述源代码的伪路径通过以下方式确定:所述浏览器响应于源代码调试请求,在从所述源代码调试请求中获取到密钥字段的情况下,基于所述生产代码的路径与所述密钥字段对应的秘钥值,生成所述源代码的伪路径;
9.基于所述真实路径,获取所述源代码,并返回所述源代码给所述浏览器。
10.可选的,所述响应于所述浏览器的源代码获取请求之后,还包括:
11.若从所述源代码获取请求中未获取到所述源代码的伪路径,且从所述源代码获取请求中获取到所述源代码的真实路径,则将所述源代码的真实路径发送给所述反向代理服务器,以使所述反向代理服务器将所述源代码的真实路径映射为目标路径,并返回所述目标路径给所述后端服务器,所述目标路径对应的数据至少不包含所述源代码;
12.返回所述目标路径对应的数据给所述浏览器。
13.可选的,所述目标路径对应的数据包含404错误的提示信息。
14.可选的,在接收到所述反向代理服务器未查到与所述源代码的伪路径匹配的真实路径,返回的匹配失败消息的情况下,访问所述源代码的伪路径对应的空间,若所述源代码的伪路径对应的空间不包含数据,则返回404错误的提示信息给所述浏览器。
15.一种源代码访问方法,其特征在于,该方法包括:
16.发送页面访问请求给后端服务器,以使所述后端服务器响应于所述页面访问请求,加载生产代码,将所述生产代码发送给所述浏览器,所述生产代码为对源代码进行隐藏处理得到的;
17.接收所述生产代码;
18.响应于源代码调试请求,在从所述源代码调试请求中获取到密钥字段的情况下,基于所述生产代码的路径与所述密钥字段对应的秘钥值,生成所述源代码的伪路径;
19.将携带有所述源代码的伪路径的源代码获取请求发送给所述后端服务器,以使所述后端服务器响应于所述浏览器的源代码获取请求,若从所述源代码获取请求中获取到所述源代码的伪路径,则将所述源代码的伪路径发送给反向代理服务器,以使所述反向代理服务器查与所述源代码的伪路径匹配的真实路径,若查到,则返回所述真实路径给所述后端服务器,所述后端服务器基于所述真实路径,获取所述源代码,并返回所述源代码给所述浏览器,以基于所述浏览器对所述源代码进行调试。
20.一种源代码访问装置,应用于后端服务器,该装置包括:
21.第一响应模块,用于响应于浏览器的页面访问请求,加载生产代码,将所述生产代码发送给所述浏览器,所述生产代码为对源代码进行隐藏处理得到的;
22.第二响应模块,用于响应于所述浏览器的源代码获取请求,若从所述源代码获取请求中获取到所述源代码的伪路径,则将所述源代码的伪路径发送给反向代理服务器,以使所述反向代理服务器查与所述源代码的伪路径匹配的真实路径,若查到,则返回所述真实路径给所述后端服务器;
23.其中,所述源代码的伪路径通过以下方式确定:所述浏览器响应于源代码调试请求,在从所述源代码调试请求中获取到密钥字段的情况下,基于所述生产代码的路径与所述密钥字段对应的秘钥值,生成所述源代码的伪路径;
24.获取模块,用于基于所述真实路径,获取所述源代码;
25.第一返回模块,用于返回所述源代码给所述浏览器。
26.可选的,所述装置还包括:
27.发送模块,用于若从所述源代码获取请求中未获取到所述源代码的伪路径,且从所述源代码获取请求中获取到所述源代码的真实路径,则将所述源代码的真实路径发送给所述反向代理服务器,以使所述反向代理服务器将所述源代码的真实路径映射为目标路径,并返回所述目标路径给所述后端服务器,所述目标路径对应的数据至少不包含所述源代码;
28.第二返回模块,用于返回所述目标路径对应的数据给所述浏览器。
29.8、根据权利要求7所述的装置,其特征在于,所述目标路径对应的数据包含404错误的提示信息。
30.可选的,所述装置还包括:
31.第三返回模块,用于在接收到所述反向代理服务器未查到与所述源代码的伪路径匹配的真实路径,返回的匹配失败消息的情况下,访问所述源代码的伪路径对应的空间,若所述源代码的伪路径对应的空间不包含数据,则返回404错误的提示信息给所述浏览器。
32.一种源代码访问装置,应用于浏览器,该装置包括:
33.第一发送模块,用于发送页面访问请求给后端服务器,以使所述后端服务器响应于所述页面访问请求,加载生产代码,将所述生产代码发送给所述浏览器,所述生产代码为对源代码进行隐藏处理得到的;
34.接收模块,用于接收所述生产代码;
35.生成模块,用于响应于源代码调试请求,在从所述源代码调试请求中获取到密钥字段的情况下,基于所述生产代码的路径与所述密钥字段对应的秘钥值,生成所述源代码的伪路径;
36.第二发送模块,用于将携带有所述源代码的伪路径的源代码获取请求发送给所述后端服务器,以使所述后端服务器响应于所述浏览器的源代码获取请求,若从所述源代码获取请求中获取到所述源代码的伪路径,则将所述源代码的伪路径发送给反向代理服务器,以使所述反向代理服务器查与所述源代码的伪路径匹配的真实路径,若查到,则返回所述真实路径给所述后端服务器,所述后端服务器基于所述真实路径,获取所述源代码,并返回所述源代码给所述浏览器,以基于所述浏览器对所述源代码进行调试。
37.与现有技术相比,本技术的有益效果为:
38.在本技术中,通过响应于浏览器的页面访问请求,加载生产代码,将生产代码发送给浏览器,实现在浏览器发起页面访问请求时,由生产代码提供服务,保证源代码的保密性和安全性。
39.并且,浏览器通过响应于源代码调试请求,在从所述源代码调试请求中获取到密钥字段的情况下,基于所述生产代码的路径与所述密钥字段对应的秘钥值,生成所述源代码的伪路径,并将原代码的伪路径发送给后端服务器,后端服务器将源代码的伪路径发送给反向代理服务器,由反向代理服务器查与所述源代码的伪路径匹配的真实路径,若查到,则返回所述真实路径给所述后端服务器,由后端服务器基于真实路径,获取源代码,实现了必须且只能通过密钥字段,生成伪路径,并进行伪路径与真实路径的映射才能访问源代码,以此提高源代码访问的安全性。
40.以及,修改密钥字段时,只需要修改反向代理服务器中源代码的伪路径与其真实路径的映射关系即可,不需要更改源代码在后端服务器的物理存放目录,无需修改任何代码,降低修改工作量,降低维护成本。
附图说明
41.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
42.图1是本技术实施例1提供的一种源代码访问方法的流程图;
43.图2是本技术实施例2提供的一种源代码访问方法的流程图;
44.图3是本技术实施例3提供的一种源代码访问方法的流程图;
45.图4是本技术实施例4提供的一种源代码访问方法的流程图;
46.图5是本技术提供的一种源代码访问装置的逻辑结构示意图;
47.图6是本技术提供的另一种源代码访问装置的逻辑结构示意图。
具体实施方式
48.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
49.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本技术作进一步详细的说明。
50.参照图1,为本技术实施例1提供的一种源代码访问方法的流程图,该方法可以应用于后端服务器,如图1所示,该方法可以包括但并不局限于以下步骤:
51.步骤s11、响应于浏览器的页面访问请求,加载生产代码,将所述生产代码发送给所述浏览器,所述生产代码为对源代码进行隐藏处理得到的。
52.本实施例中,后端服务器将源代码和生产代码部署到不同目录下,使源代码的真实路径和生产代码的路径不同。如,生产代码部署在js目录,源代码部署在js_src目录下。
53.步骤s12、响应于所述浏览器的源代码获取请求,若从所述源代码获取请求中获取到所述源代码的伪路径,则将所述源代码的伪路径发送给反向代理服务器,以使所述反向代理服务器查与所述源代码的伪路径匹配的真实路径,若查到,则返回所述真实路径给所述后端服务器;
54.其中,所述源代码的伪路径通过以下方式确定:所述浏览器响应于源代码调试请求,在从所述源代码调试请求中获取到密钥字段的情况下,基于所述生产代码的路径与所述密钥字段对应的秘钥值,生成所述源代码的伪路径。
55.本实施例中,后端服务器可以指定秘钥值,并对指定用户公开指定的密钥值,使用户可以在请求进行程序调试时,向后端服务器发送携带有秘钥值的源代码调试请求。
56.在后端服务器指定秘钥值(如,ds4wy0)的情况下,后端服务器可以基于生产代码的路径和密钥字段对应的秘钥值,生成源代码的伪路径(如,xx/js_ds4wy0/),并将源代码的伪路径和源代码的真实路径(如,xx/js_src/)发送给反向代理服务器,反向代理服务器配置源代码的伪路径与真实路径的映射关系。
57.当然,用户可以向浏览器发送源代码调试请求(如,page.html?src_key=ds4wy0)浏览器响应于源代码调试请求,可以在从源代码调试请求中获取密钥字段(如,src_key)的情况下,基于生产代码的路径与密钥字段对应的秘钥值(ds4wy0),生成源代码的伪路径,并将携带有源代码的伪路径的源代码获取请求发送给后端服务器。
58.基于生产代码的路径与密钥字段对应的秘钥值,生成源代码的伪路径,可以包括但不局限于:将密钥字段对应的秘钥值(如,ds4wy0)与生产代码的路径(如,xx/js/test.js)进行拼接,得到源代码的伪路径(如,xx/js_ds4wy0/test.js)。
59.响应于所述浏览器的源代码获取请求,若从所述源代码获取请求中获取到所述源代码的伪路径,则将所述源代码的伪路径发送给反向代理服务器。
60.反向代理服务器在接收到后端服务器发送的源代码的伪路径的情况下,所述反向代理服务器在配置的映射关系中,查与所述源代码的伪路径匹配的真实路径,若查到,则返回所述真实路径给所述后端服务器。
61.步骤s13、基于所述真实路径,获取所述源代码,并返回所述源代码给所述浏览器。
62.返回所述源代码给所述浏览器后,用户可以利用浏览器接收到的源代码对程序进行调试。
63.在本技术中,通过响应于浏览器的页面访问请求,加载生产代码,将生产代码发送给浏览器,实现在浏览器发起页面访问请求时,由生产代码提供服务,保证源代码的保密性和安全性。
64.并且,浏览器通过响应于源代码调试请求,在从所述源代码调试请求中获取到密钥字段的情况下,基于所述生产代码的路径与所述密钥字段对应的秘钥值,生成所述源代码的伪路径,并将原代码的伪路径发送给后端服务器,后端服务器将源代码的伪路径发送给反向代理服务器,由反向代理服务器查与所述源代码的伪路径匹配的真实路径,若查到,则返回所述真实路径给所述后端服务器,由后端服务器基于真实路径,获取源代码,实现了必须且只能通过密钥字段,生成伪路径,并进行伪路径与真实路径的映射才能访问源代码,以此提高源代码访问的安全性。
65.以及,在修改密钥字段时,只需要修改反向代理服务器中源代码的伪路径与其真实路径的映射关系即可,不需要更改源代码在后端服务器的物理存放目录,无需修改任何代码,降低修改工作量,降低维护成本。
66.作为本技术另一可选实施例,参照图2,为本技术实施例2提供的一种源代码访问方法的流程图,本实施例主要是对上述实施例1描述的源代码访问方法的扩展方案,如图2所示,该方法可以包括但并不局限于以下步骤:
67.步骤s21、响应于浏览器的页面访问请求,加载生产代码,将所述生产代码发送给所述浏览器,所述生产代码为对源代码进行隐藏处理得到的;
68.步骤s22、响应于所述浏览器的源代码获取请求,若从所述源代码获取请求中获取到所述源代码的伪路径,则将所述源代码的伪路径发送给反向代理服务器,以使所述反向代理服务器查与所述源代码的伪路径匹配的真实路径,若查到,则返回所述真实路径给所述后端服务器;
69.其中,所述源代码的伪路径通过以下方式确定:所述浏览器响应于源代码调试请求,在从所述源代码调试请求中获取到密钥字段的情况下,基于所述生产代码的路径与所述密钥字段对应的秘钥值,生成所述源代码的伪路径;
70.步骤s23、基于所述真实路径,获取所述源代码,并返回所述源代码给所述浏览器。
71.步骤s21-s23的详细过程可以参见实施例1中步骤s11-s13的相关介绍,在此不再赘述。
72.步骤s24、若从所述源代码获取请求中未获取到所述源代码的伪路径,且从所述源代码获取请求中获取到所述源代码的真实路径,则将所述源代码的真实路径发送给所述反向代理服务器,以使所述反向代理服务器将所述源代码的真实路径映射为目标路径,并返回所述目标路径给所述后端服务器,所述目标路径对应的数据至少不包含所述源代码。
73.本实施例中,反向代理服务器可以配置源代码的真实路径与目标路径的映射关系,在此基础上,反向代理服务器若接收到源代码的真实路径,则可以将原代码的真实路径映射为目标路径,防止浏览器通过真实路径的方式访问到源代码。
74.本实施例中,目标路径对应的数据可以包括但不局限于:包含404错误的提示信息。
75.步骤s25、返回所述目标路径对应的数据给所述浏览器。
76.本实施例中,由反向代理服务器将源代码的真实路径反向代理为目标路径,避免源代码的真实路径被窃取之后,造成源代码的泄露,进一步保证源代码的安全性。
77.作为本技术另一可选实施例,参照图3,为本技术实施例3提供的一种源代码访问方法的流程图,本实施例主要是对上述实施例1描述的源代码访问方法的扩展方案,如图3所示,该方法可以包括但并不局限于以下步骤:
78.步骤s31、响应于浏览器的页面访问请求,加载生产代码,将所述生产代码发送给所述浏览器,所述生产代码为对源代码进行隐藏处理得到的;
79.步骤s32、响应于所述浏览器的源代码获取请求,若从所述源代码获取请求中获取到所述源代码的伪路径,则将所述源代码的伪路径发送给反向代理服务器,以使所述反向代理服务器查与所述源代码的伪路径匹配的真实路径,若查到,则返回所述真实路径给所述后端服务器;
80.其中,所述源代码的伪路径通过以下方式确定:所述浏览器响应于源代码调试请求,在从所述源代码调试请求中获取到密钥字段的情况下,基于所述生产代码的路径与所述密钥字段对应的秘钥值,生成所述源代码的伪路径;
81.步骤s33、基于所述真实路径,获取所述源代码,并返回所述源代码给所述浏览器。
82.步骤s31-s33的详细过程可以参见实施例1中步骤s11-s13的相关介绍,在此不再赘述。
83.步骤s34、在接收到所述反向代理服务器未查到与所述源代码的伪路径匹配的真实路径,返回的匹配失败消息的情况下,访问所述源代码的伪路径对应的空间,若所述源代码的伪路径对应的空间不包含数据,则返回404错误的提示信息给所述浏览器。
84.用户向浏览器发送的源代码调试请求中的秘钥值可能是错误的或已废弃的,导致反向代理服务器查不到基于错误的或已废弃的秘钥值生成的源代码的伪路径匹配的真实路径,并且,基于错误的或已废弃的秘钥值生成的源代码的伪路径对应的空间不包含数据。这种情况下,后端服务器在接收到所述反向代理服务器未查到与所述源代码的伪路径匹配的真实路径,返回的匹配失败消息的情况下,访问所述源代码的伪路径对应的空间,若所述源代码的伪路径对应的空间不包含数据,则返回404错误的提示信息给所述浏览器
85.作为本技术另一可选实施例,参照图4,为本技术实施例4提供的一种源代码访问方法的流程图,该方法可以应用于浏览器,该方法可以包括以下步骤:
86.步骤s41、发送页面访问请求给后端服务器,以使所述后端服务器响应于所述页面访问请求,加载生产代码,将所述生产代码发送给所述浏览器,所述生产代码为对源代码进行隐藏处理得到的。
87.步骤s42、接收所述生产代码。
88.步骤s43、响应于源代码调试请求,在从所述源代码调试请求中获取到密钥字段的情况下,基于所述生产代码的路径与所述密钥字段对应的秘钥值,生成所述源代码的伪路径。
89.步骤s44、将携带有所述源代码的伪路径的源代码获取请求发送给所述后端服务器,以使所述后端服务器响应于所述浏览器的源代码获取请求,若从所述源代码获取请求中获取到所述源代码的伪路径,则将所述源代码的伪路径发送给反向代理服务器,以使所
述反向代理服务器查与所述源代码的伪路径匹配的真实路径,若查到,则返回所述真实路径给所述后端服务器,所述后端服务器基于所述真实路径,获取所述源代码,并返回所述源代码给所述浏览器。
90.步骤s43-s44的详细过程可以参见实施例1中的相关介绍,在此不再赘述。
91.接下来对本技术提供的源代码访问装置进行介绍,下文介绍的源代码访问装置与上文介绍的源代码访问方法可相互对应参照。
92.如图5所示,源代码访问装置应用于后端服务器,源代码访问装置包括:第一响应模块100、第二响应模块200、获取模块300和第一返回模块400。
93.第一响应模块100,用于响应于浏览器的页面访问请求,加载生产代码,将所述生产代码发送给所述浏览器,所述生产代码为对源代码进行隐藏处理得到的;
94.第二响应模块200,用于响应于所述浏览器的源代码获取请求,若从所述源代码获取请求中获取到所述源代码的伪路径,则将所述源代码的伪路径发送给反向代理服务器,以使所述反向代理服务器查与所述源代码的伪路径匹配的真实路径,若查到,则返回所述真实路径给所述后端服务器;
95.其中,所述源代码的伪路径通过以下方式确定:所述浏览器响应于源代码调试请求,在从所述源代码调试请求中获取到密钥字段的情况下,基于所述生产代码的路径与所述密钥字段对应的秘钥值,生成所述源代码的伪路径;
96.获取模块300,用于基于所述真实路径,获取所述源代码;
97.第一返回模块400,用于返回所述源代码给所述浏览器。
98.本实施例中,所述装置还可以包括:
99.发送模块,用于若从所述源代码获取请求中未获取到所述源代码的伪路径,且从所述源代码获取请求中获取到所述源代码的真实路径,则将所述源代码的真实路径发送给所述反向代理服务器,以使所述反向代理服务器将所述源代码的真实路径映射为目标路径,并返回所述目标路径给所述后端服务器,所述目标路径对应的数据至少不包含所述源代码;
100.第二返回模块,用于返回所述目标路径对应的数据给所述浏览器。
101.本实施例中,所述目标路径对应的数据可以包含404错误的提示信息。
102.本实施例中,所述装置还可以包括:
103.第三返回模块,用于在接收到所述反向代理服务器未查到与所述源代码的伪路径匹配的真实路径,返回的匹配失败消息的情况下,访问所述源代码的伪路径对应的空间,若所述源代码的伪路径对应的空间不包含数据,则返回404错误的提示信息给所述浏览器。
104.在本技术的另一个实施例中,提供一种源代码访问装置,应用于浏览器,如图6所示,该装置包括:第一发送模块500、接收模块600、生成模块700和第二发送模块800。
105.第一发送模块500,用于发送页面访问请求给后端服务器,以使所述后端服务器响应于所述页面访问请求,加载生产代码,将所述生产代码发送给所述浏览器,所述生产代码为对源代码进行隐藏处理得到的;
106.接收模块600,用于接收所述生产代码;
107.生成模块700,用于响应于源代码调试请求,在从所述源代码调试请求中获取到密钥字段的情况下,基于所述生产代码的路径与所述密钥字段对应的秘钥值,生成所述源代
码的伪路径;
108.第二发送模块800,用于将携带有所述源代码的伪路径的源代码获取请求发送给所述后端服务器,以使所述后端服务器响应于所述浏览器的源代码获取请求,若从所述源代码获取请求中获取到所述源代码的伪路径,则将所述源代码的伪路径发送给反向代理服务器,以使所述反向代理服务器查与所述源代码的伪路径匹配的真实路径,若查到,则返回所述真实路径给所述后端服务器,所述后端服务器基于所述真实路径,获取所述源代码,并返回所述源代码给所述浏览器,以基于所述浏览器对所述源代码进行调试。
109.需要说明的是,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
110.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者电子设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者电子设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者电子设备中还存在另外的相同要素。
111.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
112.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机电子设备(可以是个人计算机,服务器,或者网络电子设备等)执行本技术各个实施例或者实施例的某些部分所述的方法。
113.以上对本技术所提供的一种源代码访问方法及装置进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
技术特征:
1.一种源代码访问方法,其特征在于,应用于后端服务器,该方法包括:响应于浏览器的页面访问请求,加载生产代码,将所述生产代码发送给所述浏览器,所述生产代码为对源代码进行隐藏处理得到的;响应于所述浏览器的源代码获取请求,若从所述源代码获取请求中获取到所述源代码的伪路径,则将所述源代码的伪路径发送给反向代理服务器,以使所述反向代理服务器查与所述源代码的伪路径匹配的真实路径,若查到,则返回所述真实路径给所述后端服务器;其中,所述源代码的伪路径通过以下方式确定:所述浏览器响应于源代码调试请求,在从所述源代码调试请求中获取到密钥字段的情况下,基于所述生产代码的路径与所述密钥字段对应的秘钥值,生成所述源代码的伪路径;基于所述真实路径,获取所述源代码,并返回所述源代码给所述浏览器。2.根据权利要求1所述的方法,其特征在于,所述响应于所述浏览器的源代码获取请求之后,还包括:若从所述源代码获取请求中未获取到所述源代码的伪路径,且从所述源代码获取请求中获取到所述源代码的真实路径,则将所述源代码的真实路径发送给所述反向代理服务器,以使所述反向代理服务器将所述源代码的真实路径映射为目标路径,并返回所述目标路径给所述后端服务器,所述目标路径对应的数据至少不包含所述源代码;返回所述目标路径对应的数据给所述浏览器。3.根据权利要求2所述的方法,其特征在于,所述目标路径对应的数据包含404错误的提示信息。4.根据权利要求1所述的方法,其特征在于,在接收到所述反向代理服务器未查到与所述源代码的伪路径匹配的真实路径,返回的匹配失败消息的情况下,访问所述源代码的伪路径对应的空间,若所述源代码的伪路径对应的空间不包含数据,则返回404错误的提示信息给所述浏览器。5.一种源代码访问方法,其特征在于,应用于浏览器,该方法包括:发送页面访问请求给后端服务器,以使所述后端服务器响应于所述页面访问请求,加载生产代码,将所述生产代码发送给所述浏览器,所述生产代码为对源代码进行隐藏处理得到的;接收所述生产代码;响应于源代码调试请求,在从所述源代码调试请求中获取到密钥字段的情况下,基于所述生产代码的路径与所述密钥字段对应的秘钥值,生成所述源代码的伪路径;将携带有所述源代码的伪路径的源代码获取请求发送给所述后端服务器,以使所述后端服务器响应于所述浏览器的源代码获取请求,若从所述源代码获取请求中获取到所述源代码的伪路径,则将所述源代码的伪路径发送给反向代理服务器,以使所述反向代理服务器查与所述源代码的伪路径匹配的真实路径,若查到,则返回所述真实路径给所述后端服务器,所述后端服务器基于所述真实路径,获取所述源代码,并返回所述源代码给所述浏览器,以基于所述浏览器对所述源代码进行调试。6.一种源代码访问装置,其特征在于,应用于后端服务器,该装置包括:第一响应模块,用于响应于浏览器的页面访问请求,加载生产代码,将所述生产代码发
送给所述浏览器,所述生产代码为对源代码进行隐藏处理得到的;第二响应模块,用于响应于所述浏览器的源代码获取请求,若从所述源代码获取请求中获取到所述源代码的伪路径,则将所述源代码的伪路径发送给反向代理服务器,以使所述反向代理服务器查与所述源代码的伪路径匹配的真实路径,若查到,则返回所述真实路径给所述后端服务器;其中,所述源代码的伪路径通过以下方式确定:所述浏览器响应于源代码调试请求,在从所述源代码调试请求中获取到密钥字段的情况下,基于所述生产代码的路径与所述密钥字段对应的秘钥值,生成所述源代码的伪路径;获取模块,用于基于所述真实路径,获取所述源代码;第一返回模块,用于返回所述源代码给所述浏览器。7.根据权利要求6所述的装置,其特征在于,所述装置还包括:发送模块,用于若从所述源代码获取请求中未获取到所述源代码的伪路径,且从所述源代码获取请求中获取到所述源代码的真实路径,则将所述源代码的真实路径发送给所述反向代理服务器,以使所述反向代理服务器将所述源代码的真实路径映射为目标路径,并返回所述目标路径给所述后端服务器,所述目标路径对应的数据至少不包含所述源代码;第二返回模块,用于返回所述目标路径对应的数据给所述浏览器。8.根据权利要求7所述的装置,其特征在于,所述目标路径对应的数据包含404错误的提示信息。9.根据权利要求6所述的装置,其特征在于,所述装置还包括:第三返回模块,用于在接收到所述反向代理服务器未查到与所述源代码的伪路径匹配的真实路径,返回的匹配失败消息的情况下,访问所述源代码的伪路径对应的空间,若所述源代码的伪路径对应的空间不包含数据,则返回404错误的提示信息给所述浏览器。10.一种源代码访问装置,其特征在于,应用于浏览器,该装置包括:第一发送模块,用于发送页面访问请求给后端服务器,以使所述后端服务器响应于所述页面访问请求,加载生产代码,将所述生产代码发送给所述浏览器,所述生产代码为对源代码进行隐藏处理得到的;接收模块,用于接收所述生产代码;生成模块,用于响应于源代码调试请求,在从所述源代码调试请求中获取到密钥字段的情况下,基于所述生产代码的路径与所述密钥字段对应的秘钥值,生成所述源代码的伪路径;第二发送模块,用于将携带有所述源代码的伪路径的源代码获取请求发送给所述后端服务器,以使所述后端服务器响应于所述浏览器的源代码获取请求,若从所述源代码获取请求中获取到所述源代码的伪路径,则将所述源代码的伪路径发送给反向代理服务器,以使所述反向代理服务器查与所述源代码的伪路径匹配的真实路径,若查到,则返回所述真实路径给所述后端服务器,所述后端服务器基于所述真实路径,获取所述源代码,并返回所述源代码给所述浏览器,以基于所述浏览器对所述源代码进行调试。
技术总结
本申请提供了一种源代码访问方法及装置,该方法通过秘钥值动态加载源代码的方式,实现生产代码和源代码双重切换的需求,使源代码调试的需求得到实现。通过对源代码的访问必须且只能通过秘钥值,即使直接访问源码真实路径也无法访问源代码,实现源码的安全性和保密性的保护,同时在修改密钥字段时,只需要修改反向代理服务器中源代码的伪路径与其真实路径的映射关系即可,不需要更改源代码在后端服务器的物理存放目录,无需修改任何代码,降低修改工作量,降低维护成本。降低维护成本。降低维护成本。
技术研发人员:
余获 周辉 蔡伟江 金昊
受保护的技术使用者:
广州市千钧网络科技有限公司
技术研发日:
2021.08.25
技术公布日:
2023/3/2