发明内容
本发明提供一种基于API接口的动态信息防护方法和装置,用以解决现有技术中维护麻烦且实时性较差的缺陷。
本发明提供一种基于API接口的动态信息防护方法,包括:
拦截各个用户端发出的API请求,并获取所述API请求中包含的所述用户端的标识信息以及所述API请求访问的API类型;
若所述API请求访问的API类型为包含敏感数据的API,则向服务端转发所述API请求并接收所述服务端返回的所述API请求对应的返回数据,基于当前代理端接收的API请求数量,确定所述API请求的水印添加策略;其中,若当前代理端接收的API请求数量小于等于预设阈值,则确定所述API请求的水印添加策略为代理端添加策略;
若所述API请求的水印添加策略为代理端添加策略,则对所述API请求对应的返回数据进行水印添加操作,得到带水印数据,并将所述带水印数据返回给相应用户端。
根据本发明提供的一种基于API接口的动态信息防护方法,所述对所述API请求对应的返回数据进行水印添加操作,得到带水印数据,具体包括:
若所述API请求对应的返回数据为页面数据或文件数据,则基于所述API请求中包含的所述用户端的标识信息对所述API请求对应的返回数据添加可视化水印,得到带水印数据;
否则,基于所述API请求中包含的所述用户端的标识信息对所述API请求对应的返回数据添加数字水印,得到带水印数据。
根据本发明提供的一种基于API接口的动态信息防护方法,若所述API请求对应的返回数据为页面数据,所述基于所述API请求中包含的所述用户端的标识信息对所述API请求对应的返回数据添加可视化水印,得到带水印数据,具体包括:
若所述API请求对应的返回数据为无交互页面,则将所述无交互页面转换为页面图片,并基于所述API请求中包含的所述用户端的标识信息生成水印图片;
将所述水印图片复制多份后按照预设透明度和预设添加位置与所述页面图片叠加,得到所述带水印数据。
根据本发明提供的一种基于API接口的动态信息防护方法,若所述API请求对应的返回数据为页面数据,所述基于所述API请求中包含的所述用户端的标识信息对所述API请求对应的返回数据添加可视化水印,得到带水印数据,具体包括:
若所述API请求对应的返回数据为有交互页面,获取所述有交互页面中的各个敏感数据,并将所述有交互页面中的各个敏感数据分别转换为敏感数据图片;
基于所述API请求中包含的所述用户端的标识信息生成水印图片,分别将所述各个敏感数据的敏感数据图片与所述水印图片叠加,得到所述各个敏感数据的水印融合图片;
将所述有交互页面中各个敏感数据的页面标签调整为img标签后,将所述有交互页面中的各个敏感数据替换为各个敏感数据的水印融合图片的图片地址,得到所述带水印数据。
根据本发明提供的一种基于API接口的动态信息防护方法,若所述API请求对应的返回数据为页面数据,所述基于当前代理端接收的API请求数量,确定所述API请求的水印添加策略,之后还包括:
若所述API请求的水印添加策略为前端添加策略,则基于所述API请求中包含的所述用户端的标识信息生成水印图片,并将所述API请求对应的返回数据连同所述水印图片一同返回至相应用户端,以供相应用户端的浏览器在渲染页面时基于所述水印图片对所述API请求对应的返回数据进行水印添加操作;
其中,若当前代理端接收的API请求数量大于预设阈值,则确定所述API请求的水印添加策略为前端添加策略。
根据本发明提供的一种基于API接口的动态信息防护方法,所述将所述API请求对应的返回数据连同所述水印图片一同返回至相应用户端,具体包括:
对所述API请求对应的返回数据中的敏感数据按照预设编码规则进行编码,得到编码数据,并将所述编码数据连同所述水印图片一同返回至相应用户端,以供相应用户端的浏览器基于所述预设编码规则对应的预设解码规则对所述编码数据进行解码,得到解码数据,并在渲染页面时基于所述水印图片对所述解码数据进行水印添加操作。
根据本发明提供的一种基于API接口的动态信息防护方法,所述接收所述服务端返回的所述API请求对应的返回数据,之后还包括:
对所述API请求对应的返回数据中的秘密数据进行脱敏操作,将所述API请求对应的返回数据中的秘密数据遮蔽。
本发明还提供一种基于API接口的动态信息防护装置,包括:
请求拦截单元,用于拦截各个用户端发出的API请求,并获取所述API请求中包含的所述用户端的标识信息以及所述API请求访问的API类型;
数据获取单元,用于若所述API请求访问的API类型为包含敏感数据的API,则向服务端转发所述API请求并接收所述服务端返回的所述API请求对应的返回数据,基于当前代理端接收的API请求数量,确定所述API请求的水印添加策略;其中,若当前代理端接收的API请求数量小于等于预设阈值,则确定所述API请求的水印添加策略为代理端添加策略;
水印添加单元,用于若所述API请求的水印添加策略为代理端添加策略,则对所述API请求对应的返回数据进行水印添加操作,得到带水印数据,并将所述带水印数据返回给相应用户端。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于API接口的动态信息防护方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于API接口的动态信息防护方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于API接口的动态信息防护方法。
本发明提供的基于API接口的动态信息防护方法和装置,代理端作为用户端和服务端之间的处理中介,经由代理端负责API请求及其返回数据的转发,一方面可以降低服务端的处理压力、避免数据库水印带来的维护成本和实时性下降的风险,更重要的是可以在代理端事先对接收的所有API请求进行分类,仅对访问的API类型为包含敏感数据的API的API请求实时进行水印添加操作,有效提升了水印添加和网络访问的实时性;此外,通过代理端拦截处理用户端发出的API请求,可以在代理端根据自身处理能力确定相应的水印添加策略,在保证敏感信息均以添加水印的形式展现给用户的基础上提升网络请求处理的实时性。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明提供的基于API接口的动态信息防护方法的流程示意图,如图1所示,该方法包括:
步骤110,拦截各个用户端发出的API请求,并获取所述API请求中包含的所述用户端的标识信息以及所述API请求访问的API类型;
步骤120,若所述API请求访问的API类型为包含敏感数据的API,则向服务端转发所述API请求并接收所述服务端返回的所述API请求对应的返回数据,基于当前代理端接收的API请求数量,确定所述API请求的水印添加策略;其中,若当前代理端接收的API请求数量小于等于预设阈值,则确定所述API请求的水印添加策略为代理端添加策略;
步骤130,若所述API请求的水印添加策略为代理端添加策略,则对所述API请求对应的返回数据进行水印添加操作,得到带水印数据,并将所述带水印数据返回给相应用户端。
具体地,为了降低提供网络服务的服务端的负载同时避免过多操作数据库导致实时性下降,本发明实施例在服务端的网关处设置了代理端,用于反向代理用户端向服务端发送的请求,而信息防护操作也将在代理端进行。其中,为了提升用户网络请求的实时性,代理端可以拦截各个用户端发出的API请求,并对API请求进行解析。解析API请求时,一方面可以从API请求中获取用户端请求访问的API类型,明确该用户端的API请求的访问对象,从而确定相应的信息防护策略;另一方面,还可以从API请求中解析出发出该API请求的用户端的标识信息,以确定该API请求的来源。
此处,若API请求访问的API类型指示其待访问的API中包含敏感数据(例如个人隐私信息、企业内部信息等),则需要对该API请求进行水印添加处理,以防护该敏感信息不至于轻易被窃取泄露并在信息泄露后及时溯源。相应地,若API请求访问的API类型指示其待访问的API中不包含敏感数据,则无需对该API请求进行水印添加处理,以节约代理端的计算资源、提升用户端网络访问的实时性。
其中,对于请求访问包含敏感数据的API的API请求,代理端会将该API请求转发给提供该包含敏感数据的API的服务端,由服务端对该API请求进行响应,并接收服务端返回的该API请求对应的返回数据。此时,服务端返回的返回数据中包含有敏感数据,因此需要对其进行水印添加操作。此处,考虑到目前针对各个服务端的所有API请求均经由代理端进行转发,因此网络访问实时性的性能瓶颈在代理端处,因此,为了满足用户端网络访问的实时性,代理端可以统计当前接收的API请求数量,以判断当前的请求处理负载。若当前代理端接收的API请求数量小于等于预设阈值,表明此时API请求密集程度较低、代理端负载较轻,因此可以确定当前接收的API请求的水印添加策略为代理端添加策略,即水印添加操作在代理端完成。
具体而言,当API请求的水印添加策略为代理端添加策略时,可以由代理端对API请求对应的返回数据进行水印添加操作,得到该API请求对应的带水印数据,再将该带水印数据返回给相应的用户端。其中,进行水印添加操作时添加的水印信息与相应用户端的标识信息相对应,以供后期进行溯源操作。
如若当前代理端接收的API请求数量大于预设阈值,表明此时API请求密集程度较高、代理端负载较重,此时为了提升网络访问的实时性,可以考虑将部分API请求的水印添加操作转移到用户端,以降低代理端的负载、提升代理端对于API请求的处理效率和针对剩余API请求的水印添加效率。其中,对于访问数据为页面数据(即网页数据)的API请求,可以将其水印添加操作转移到用户端,由用户端的浏览器在前端进行水印添加操作,同样可以保证用户所见的敏感数据均为添加水印后的数据。可见,本发明实施例通过代理端拦截处理用户端发出的API请求,可以在代理端根据自身处理能力确定相应的水印添加策略,在保证敏感信息均以添加水印的形式展现给用户的基础上提升网络请求处理的实时性。
本发明实施例提供的方法,代理端作为用户端和服务端之间的处理中介,经由代理端负责API请求及其返回数据的转发,一方面可以降低服务端的处理压力、避免数据库水印带来的维护成本和实时性下降的风险,更重要的是可以在代理端事先对接收的所有API请求进行分类,仅对访问的API类型为包含敏感数据的API的API请求实时进行水印添加操作,有效提升了水印添加和网络访问的实时性;此外,通过代理端拦截处理用户端发出的API请求,可以在代理端根据自身处理能力确定相应的水印添加策略,在保证敏感信息均以添加水印的形式展现给用户的基础上提升网络请求处理的实时性。
基于上述实施例,所述对所述API请求对应的返回数据进行水印添加操作,得到带水印数据,具体包括:
若所述API请求对应的返回数据为页面数据或文件数据,则基于所述API请求中包含的所述用户端的标识信息对所述API请求对应的返回数据添加可视化水印,得到带水印数据;
否则,基于所述API请求中包含的所述用户端的标识信息对所述API请求对应的返回数据添加数字水印,得到带水印数据。
具体地,代理端在对API请求对应的返回数据进行水印添加操作时,可以根据该返回数据的数据类型选择合适的水印类型,以提升水印添加的有效性。其中,可以将数据类型划分为页面数据、文件数据和其他数据,页面数据为网页类型的数据,其展现形式是在用户端浏览器中以网页方式展示,而文件数据是包括文档文件、图像文件、视频文件等形式的可视化文件,其可以利用相应的软件打开并展示。其他数据是指除页面数据和文件数据以外的通过后端程序进行传输而不以可视化形式展示给用户的数据。
若API请求对应的返回数据为页面数据或文件数据,则基于该API请求中包含的相应用户端的标识信息对该API请求对应的返回数据添加可视化水印,得到带水印数据;否则,则基于该API请求中包含的相应用户端的标识信息对该API请求对应的返回数据添加数字水印,得到带水印数据。其中,添加数字水印时,可以将该API请求中包含的相应用户端的标识信息转换为数值型数据以作为该标识信息的ID,再将该标识信息的ID插入到返回数据中的预设位置,从而便于后续溯源。
基于上述任一实施例,若所述API请求对应的返回数据为页面数据,所述基于所述API请求中包含的所述用户端的标识信息对所述API请求对应的返回数据添加可视化水印,得到带水印数据,具体包括:
若所述API请求对应的返回数据为无交互页面,则将所述无交互页面转换为页面图片,并基于所述API请求中包含的所述用户端的标识信息生成水印图片;
将所述水印图片复制多份后按照预设透明度和预设添加位置与所述页面图片叠加,得到所述带水印数据。
具体地,若API请求对应的返回数据为页面数据且该API请求的水印添加策略为代理端添加策略,在代理端对API请求对应的返回数据添加可视化水印时,可以视该页面数据的类型确定更合适的水印添加方式,以提升水印添加的效率、降低网络访问的延时,从而保证网络访问的实时性。其中,可以将页面数据的类型划分为无交互页面(即页面中不包含交互功能)和有交互页面(即页面中包含交互功能)。对于较简单的无交互页面,为了提升其水印添加效率,可以将该无交互页面直接转换为页面图片或者将无交互页面中的主体部分转换为页面图片,然后基于上述API请求中包含的相应用户端的标识信息生成水印图片。添加水印时,可以将该水印图片复制多份后按照预设的透明度和预设的添加位置将多份水印图片与上述页面图片叠加,得到带水印数据。此处,由于将无交互页面转换为图片,添加水印时仅需要进行图片叠加的操作而无需对页面数据的源代码进行解析和处理,避免了不同页面数据的编码方式不同、解析难度和解析效率不一的问题,因此可以提高水印添加的效率。此外,将页面数据转换为图片后与水印图片叠加,也可避免用户端通过源代码分析方式获取页面数据中的敏感数据。
基于上述任一实施例,若所述API请求对应的返回数据为页面数据,所述基于所述API请求中包含的所述用户端的标识信息对所述API请求对应的返回数据添加可视化水印,得到带水印数据,具体包括:
若所述API请求对应的返回数据为有交互页面,获取所述有交互页面中的各个敏感数据,并将所述有交互页面中的各个敏感数据分别转换为敏感数据图片;
基于所述API请求中包含的所述用户端的标识信息生成水印图片,分别将所述各个敏感数据的敏感数据图片与所述水印图片叠加,得到所述各个敏感数据的水印融合图片;
将所述有交互页面中各个敏感数据的页面标签调整为img标签后,将所述有交互页面中的各个敏感数据替换为各个敏感数据的水印融合图片的图片地址,得到所述带水印数据。
具体地,若API请求对应的返回数据为有交互页面,即页面中包含一定的交互功能,因此不能同无交互页面一样直接将其转换为图片。为了尽可能提升水印添加的效率,另外避免全屏添加水印图片导致展示效果较差、无敏感数据部分由于添加水印而导致难以看清,可以仅对页面数据中包含敏感数据的部分进行水印添加操作。
此处,可以通过代码解析方式获取该有交互页面中的各个敏感数据(敏感数据本身或敏感数据的地址)在源代码中的位置,并基于敏感数据本身或敏感数据的地址在源代码中的位置,获取敏感数据的内容,并据此将该有交互页面中的各个敏感数据分别转换为敏感数据图片。随后,基于该API请求中包含的相应用户端的标识信息生成水印图片,并分别将上述各个敏感数据的敏感数据图片与水印图片叠加,得到各个敏感数据的水印融合图片。再将该有交互页面中各个敏感数据(或其地址)对应的页面标签调整为img标签后,将该有交互页面中的各个敏感数据或其地址替换为各个敏感数据的水印融合图片的图片地址,得到带水印数据。
基于上述任一实施例,若所述API请求对应的返回数据为页面数据,所述基于当前代理端接收的API请求数量,确定所述API请求的水印添加策略,之后还包括:
若所述API请求的水印添加策略为前端添加策略,则基于所述API请求中包含的所述用户端的标识信息生成水印图片,并将所述API请求对应的返回数据连同所述水印图片一同返回至相应用户端,以供相应用户端的浏览器在渲染页面时基于所述水印图片对所述API请求对应的返回数据进行水印添加操作;
其中,若当前代理端接收的API请求数量大于预设阈值,则确定所述API请求的水印添加策略为前端添加策略。
具体地,如若当前代理端接收的API请求数量大于预设阈值,表明此时API请求密集程度较高、代理端负载较重,此时为了提升网络访问的实时性,可以考虑将部分API请求的水印添加操作转移到用户端,以降低代理端的负载、提升代理端对于API请求的处理效率和针对剩余API请求的水印添加效率。具体而言,在当前代理端接收的API请求数量大于预设阈值时,可以获取返回数据为页面数据的API请求,并确定该返回数据为页面数据的API请求的水印添加策略为前端添加策略,在保证水印添加有效性的前提下降低代理端压力。对上述水印添加策略为前端添加策略的API请求添加水印时,可以基于该API请求中包含的相应用户端的标识信息生成水印图片,并将该API请求对应的返回数据连同该水印图片一同返回至相应用户端。
相应用户端收到上述返回数据和水印图片后,该用户端的浏览器中的水印插件将会利用JavaScript等技术向返回数据中添加水印对应的标签,浏览器在渲染页面时将会生成该水印图片对应的dom元素或canvas画布,实现针对该API请求对应的返回数据的水印添加操作,使得页面显示时水印图片已添加到相应页面中。通过浏览器在渲染阶段执行水印添加操作,可以将水印操作从代理端迁移到用户端,延后水印操作的执行且能够保证在页面显示至用户眼前之前执行完水印添加操作,既保证了水印添加的有效性,又分担了代理端的处理压力、提升了水印添加的效率。另外,水印图片由代理端生成,可以避免用户端在生成水印图片时通过修改标识信息的方式更改水印图片,从而提升水印添加的有效性。
基于上述任一实施例,所述将所述API请求对应的返回数据连同所述水印图片一同返回至相应用户端,具体包括:
对所述API请求对应的返回数据中的敏感数据按照预设编码规则进行编码,得到编码数据,并将所述编码数据所述水印图片一同返回至相应用户端,以供相应用户端的浏览器基于所述预设编码规则对应的预设解码规则对所述编码数据进行解码,得到解码数据,并在渲染页面时基于所述水印图片对所述解码数据进行水印添加操作。
具体地,考虑到当用户在用户端浏览器中禁用JavaScript时,上述前端添加策略可能失效使得水印添加失败,同时防止用户端通过开发者模式等方式从后端直接获取原始的返回数据从而获取其中的敏感数据,代理端可以对该API请求对应的返回数据中的敏感数据(或者可以直接获得敏感数据的地址)按照预设编码规则进行编码,得到返回数据对应的编码数据,并将该编码数据连同上述水印图片一同返回至相应用户端。相应用户端接收到上述编码数据和水印图片后,该用户端的浏览器可以基于预设编码规则对应的预设解码规则对上述编码数据进行解码,得到解码数据,并在渲染页面时基于水印图片对该解码数据进行水印添加操作。
此处,解码操作应当被封装在浏览器的水印插件中,若用户端将浏览器的水印插件禁用,虽然浏览器无法对上述编码数据进行水印添加操作,但浏览器同样无法基于预设解码规则对上述编码数据进行解码,因此浏览器在渲染页面时对应的敏感数据是被编码后的数据而非原始数据,因此敏感数据将无法得到正常展示,用户端也无法通过开发者模式等方式获取到敏感数据,保证了数据安全性。
基于上述任一实施例,所述接收所述服务端返回的所述API请求对应的返回数据,之后还包括:
对所述API请求对应的返回数据中的秘密数据进行脱敏操作,将所述API请求对应的返回数据中的秘密数据遮蔽。
具体地,为了对服务端返回的API请求对应的返回数据进行更全面的防护,除了添加水印操作之外,还可以对该返回数据进行脱敏操作,具体可以获取API请求对应的返回数据中的秘密数据,并对该秘密数据进行脱敏操作,将其转换为不具备特定含义的预设字符(例如*),从而将API请求对应的返回数据中的秘密数据遮蔽。其中,秘密数据是代理端预设的不希望为人所知的数据,属于敏感数据的一种,例如企业机密数据、非当前用户的个人隐私信息等。将返回数据中的秘密数据遮蔽后,可以按照上述实施例中给出的方式继续对返回数据进行水印添加处理。脱敏操作执行于水印添加操作之前,被遮蔽的秘密数据可以认为不属于敏感数据。
如图2所示,当代理端拦截到用户端发出的API请求,并判断该API请求访问的API类型为包含敏感数据的API时,可以向服务端转发该API请求并接收服务端返回的该API请求对应的返回数据。
若该返回数据中包含秘密数据,则对该返回数据进行脱敏处理。若脱敏处理后的返回数据中已不包含敏感数据,则直接将该返回数据返回给相应客户端。若脱敏处理后的返回数据中仍包含敏感数据,则基于当前代理端接收的API请求数量,确定该API请求的水印添加策略。随后,若该API请求的水印添加策略为代理端添加策略,则对脱敏处理后的返回数据进行水印添加操作,得到带水印数据,并将带水印数据返回给相应用户端。
下面对本发明提供的基于API接口的动态信息防护装置进行描述,下文描述的基于API接口的动态信息防护装置与上文描述的基于API接口的动态信息防护方法可相互对应参照。
基于上述任一实施例,图3是本发明提供的基于API接口的动态信息防护装置的结构示意图,如图3所示,该装置应用于代理端,且该装置包括:请求拦截单元310、数据获取单元320和水印添加单元330。
其中,请求拦截单元310用于拦截各个用户端发出的API请求,并获取所述API请求中包含的所述用户端的标识信息以及所述API请求访问的API类型;
数据获取单元320用于若所述API请求访问的API类型为包含敏感数据的API,则向服务端转发所述API请求并接收所述服务端返回的所述API请求对应的返回数据,基于当前代理端接收的API请求数量,确定所述API请求的水印添加策略;其中,若当前代理端接收的API请求数量小于等于预设阈值,则确定所述API请求的水印添加策略为代理端添加策略;
水印添加单元330用于若所述API请求的水印添加策略为代理端添加策略,则对所述API请求对应的返回数据进行水印添加操作,得到带水印数据,并将所述带水印数据返回给相应用户端。
本发明实施例提供的装置,代理端作为用户端和服务端之间的处理中介,经由代理端负责API请求及其返回数据的转发,一方面可以降低服务端的处理压力、避免数据库水印带来的维护成本和实时性下降的风险,更重要的是可以在代理端事先对接收的所有API请求进行分类,仅对访问的API类型为包含敏感数据的API的API请求实时进行水印添加操作,有效提升了水印添加和网络访问的实时性;此外,通过代理端拦截处理用户端发出的API请求,可以在代理端根据自身处理能力确定相应的水印添加策略,在保证敏感信息均以添加水印的形式展现给用户的基础上提升网络请求处理的实时性。
基于上述任一实施例,所述对所述API请求对应的返回数据进行水印添加操作,得到带水印数据,具体包括:
若所述API请求对应的返回数据为页面数据或文件数据,则基于所述API请求中包含的所述用户端的标识信息对所述API请求对应的返回数据添加可视化水印,得到带水印数据;
否则,基于所述API请求中包含的所述用户端的标识信息对所述API请求对应的返回数据添加数字水印,得到带水印数据。
基于上述任一实施例,若所述API请求对应的返回数据为页面数据,所述基于所述API请求中包含的所述用户端的标识信息对所述API请求对应的返回数据添加可视化水印,得到带水印数据,具体包括:
若所述API请求对应的返回数据为无交互页面,则将所述无交互页面转换为页面图片,并基于所述API请求中包含的所述用户端的标识信息生成水印图片;
将所述水印图片复制多份后按照预设透明度和预设添加位置与所述页面图片叠加,得到所述带水印数据。
基于上述任一实施例,若所述API请求对应的返回数据为页面数据,所述基于所述API请求中包含的所述用户端的标识信息对所述API请求对应的返回数据添加可视化水印,得到带水印数据,具体包括:
若所述API请求对应的返回数据为有交互页面,获取所述有交互页面中的各个敏感数据,并将所述有交互页面中的各个敏感数据分别转换为敏感数据图片;
基于所述API请求中包含的所述用户端的标识信息生成水印图片,分别将所述各个敏感数据的敏感数据图片与所述水印图片叠加,得到所述各个敏感数据的水印融合图片;
将所述有交互页面中各个敏感数据的页面标签调整为img标签后,将所述有交互页面中的各个敏感数据替换为各个敏感数据的水印融合图片的图片地址,得到所述带水印数据。
基于上述任一实施例,若所述API请求对应的返回数据为页面数据,所述基于当前代理端接收的API请求数量,确定所述API请求的水印添加策略之后,数据获取单元320还用于:
若所述API请求的水印添加策略为前端添加策略,则基于所述API请求中包含的所述用户端的标识信息生成水印图片,并将所述API请求对应的返回数据连同所述水印图片一同返回至相应用户端,以供相应用户端的浏览器在渲染页面时基于所述水印图片对所述API请求对应的返回数据进行水印添加操作;
其中,若当前代理端接收的API请求数量大于预设阈值,则确定所述API请求的水印添加策略为前端添加策略。
基于上述任一实施例,所述将所述API请求对应的返回数据连同所述水印图片一同返回至相应用户端,具体包括:
对所述API请求对应的返回数据中的敏感数据按照预设编码规则进行编码,得到编码数据,并将所述编码数据所述水印图片一同返回至相应用户端,以供相应用户端的浏览器基于所述预设编码规则对应的预设解码规则对所述编码数据进行解码,得到解码数据,并在渲染页面时基于所述水印图片对所述解码数据进行水印添加操作。
基于上述任一实施例,该装置还包括脱敏单元,所述接收所述服务端返回的所述API请求对应的返回数据之后,脱敏单元用于:
对所述API请求对应的返回数据中的秘密数据进行脱敏操作,将所述API请求对应的返回数据中的秘密数据遮蔽。
图4是本发明提供的电子设备的结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、存储器(memory)420、通信接口(Communications Interface)430和通信总线440,其中,处理器410,存储器420,通信接口430通过通信总线440完成相互间的通信。处理器410可以调用存储器420中的逻辑指令,以执行基于API接口的动态信息防护方法,该方法包括:拦截各个用户端发出的API请求,并获取所述API请求中包含的所述用户端的标识信息以及所述API请求访问的API类型;若所述API请求访问的API类型为包含敏感数据的API,则向服务端转发所述API请求并接收所述服务端返回的所述API请求对应的返回数据,基于当前代理端接收的API请求数量,确定所述API请求的水印添加策略;其中,若当前代理端接收的API请求数量小于等于预设阈值,则确定所述API请求的水印添加策略为代理端添加策略;若所述API请求的水印添加策略为代理端添加策略,则对所述API请求对应的返回数据进行水印添加操作,得到带水印数据,并将所述带水印数据返回给相应用户端。
此外,上述的存储器420中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的基于API接口的动态信息防护方法,该方法包括:拦截各个用户端发出的API请求,并获取所述API请求中包含的所述用户端的标识信息以及所述API请求访问的API类型;若所述API请求访问的API类型为包含敏感数据的API,则向服务端转发所述API请求并接收所述服务端返回的所述API请求对应的返回数据,基于当前代理端接收的API请求数量,确定所述API请求的水印添加策略;其中,若当前代理端接收的API请求数量小于等于预设阈值,则确定所述API请求的水印添加策略为代理端添加策略;若所述API请求的水印添加策略为代理端添加策略,则对所述API请求对应的返回数据进行水印添加操作,得到带水印数据,并将所述带水印数据返回给相应用户端。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的基于API接口的动态信息防护方法,该方法包括:拦截各个用户端发出的API请求,并获取所述API请求中包含的所述用户端的标识信息以及所述API请求访问的API类型;若所述API请求访问的API类型为包含敏感数据的API,则向服务端转发所述API请求并接收所述服务端返回的所述API请求对应的返回数据,基于当前代理端接收的API请求数量,确定所述API请求的水印添加策略;其中,若当前代理端接收的API请求数量小于等于预设阈值,则确定所述API请求的水印添加策略为代理端添加策略;若所述API请求的水印添加策略为代理端添加策略,则对所述API请求对应的返回数据进行水印添加操作,得到带水印数据,并将所述带水印数据返回给相应用户端。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。