CN112100551A - 一种水印处理方法、装置、存储介质及计算机程序产品 - Google Patents
一种水印处理方法、装置、存储介质及计算机程序产品 Download PDFInfo
- Publication number
- CN112100551A CN112100551A CN201910526997.7A CN201910526997A CN112100551A CN 112100551 A CN112100551 A CN 112100551A CN 201910526997 A CN201910526997 A CN 201910526997A CN 112100551 A CN112100551 A CN 112100551A
- Authority
- CN
- China
- Prior art keywords
- webpage
- watermark
- target
- node
- nodes
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
本申请实施例公开了一种水印处理方法、装置、存储介质及计算机程序产品,本申请实施例中,水印处理装置获取目标网页,其中,所述目标网页包括目标水印;当检测到所述目标水印被修改时,构建用于承载水印参数的网页容器节点;并根据所述目标网页对应的用户信息获取所述目标水印的水印参数;再将所述水印参数加入所述网页容器节点;最后根据加入水印参数后的网页容器节点在所述目标网页中重新生成所述目标水印。本方案会检测目标网页上的目标水印是否被修改,若检测到被修改时,会重新生成目标水印,从而可以避免水印因为被修改而失效,提高水印的抗破坏性。
Description
技术领域
本申请涉及图像处理技术领域,具体涉及一种水印处理方法、装置、存储介质及计算机程序产品。
背景技术
随着互联网的高速发展,网站作为信息的载体已成为各企业事业单位发布信息的重要途径。然而,网站网页被仿冒篡改影响了企业事业单位正常业务的进展。
企业要保护内部信息安全,防止网页信息被直接利用,通常会在网页上设置水印,但有些不法人员会通过开发者工具等修改网页的源代码,去除或修改网页上的水印,从而使得水印失效。
发明内容
本申请实施例提供一种水印处理方法、装置、存储介质及计算机程序产品,可以避免水印失效。
本申请提供一种水印处理方法,其特征在于,包括:
获取目标网页,所述目标网页包括目标水印;
当检测到所述目标水印被修改时,构建用于承载水印参数的网页容器节点;
根据所述目标网页对应的用户信息获取所述目标水印的水印参数;
将所述水印参数加入所述网页容器节点;
根据加入水印参数后的网页容器节点在所述目标网页中重新生成所述目标水印。
相应的,本申请实施例还提供一种水印处理装置,其特征在于,包括:
第一获取单元,用于获取目标网页,所述目标网页包括目标水印;
构建单元,用于当检测到所述目标水印被修改时,构建用于承载水印参数的网页容器节点;
第二获取单元,用于根据所述目标网页对应的用户信息获取所述目标水印的水印参数;
加入单元,用于将所述水印参数加入所述网页容器节点;
生成单元,用于根据加入水印参数后的网页容器节点在所述目标网页中重新生成所述目标水印。
在一些实施例中,所述生成单元包括:
第一确定子单元,用于在所述目标网页中的可插入网页节点中确定第一待插入网页节点;
第一插入子单元,用于当所述第一待插入网页节点对应的可见宽高等于所述目标网页的窗口可见宽高时,将所述加入水印参数后的网页容器节点插入所述第一待插入网页节点中;
第一生成子单元,用于基于插入网页容器节点后的第一待插入网页节点,在所述目标网页中重新生成所述目标水印。
在一些实施例中,所述生成单元还包括:
第二确定子单元,用于当所述第一待插入网页节点对应的可见宽高不等于所述目标网页的窗口可见宽高时,确定所述第一待插入网页节点的上层网页节点;
第三确定子单元,用于在所述上层网页节点中确定第二待插入网页节点;
第二插入子单元,用于当所述第二待插入网页节点对应的可见宽高等于所述目标网页的窗口可见宽高时,将所述加入水印参数后的网页容器节点插入所述第二待插入网页节点中;
第二生成子单元,用于基于插入网页容器节点后的第一待插入网页节点,在所述目标网页中重新生成所述目标水印。
在一些实施例中,所述第一确定子单元具体用于:
根据所述目标网页中网页节点的节点属性确定所述可插入节点;
在所述可插入节点中随机确定所述第一待插入网页节点。
在一些实施例中,所述第二确定子单元具体用于:
确定所述第一待插入网页节点的父节点;
确定所述父节点的兄弟节点;
将所述父节点以及所述兄弟节点确定为所述上层网页节点。
在一些实施例中,所述装置还包括:
检测单元,用于当检测到所述目标网页中存在网页节点被修改时,确定被修改的网页节点是否包含所述网页容器节点;
第一确定单元,用于当所述被修改网页节点包含所述网页容器节点时,确定所述目标水印被修改。
在一些实施例中,所述装置还包括:
第三获取单元,用于获取所述目标网页当前显示的水印样式;
第二确定单元,用于确定所述水印样式与预置水印样式是否一致;
第三确定单元,用于当所述水印样式与预置水印样式不一致时,确定所述目标水印被修改。
另一方面,本申请实施例还提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例提供的任一种水印处理方法中的步骤。
另一方面,本申请实施例还提供一种计算机程序产品,当其在计算机上运行时,使得计算机执行本申请实施例提供的任一种水印处理方法中的步骤。
本申请实施例中,水印处理装置获取目标网页,其中,所述目标网页包括目标水印;当检测到所述目标水印被修改时,构建用于承载水印参数的网页容器节点;并根据所述目标网页对应的用户信息获取所述目标水印的水印参数;再将所述水印参数加入所述网页容器节点;最后根据加入水印参数后的网页容器节点在所述目标网页中重新生成所述目标水印。本方案会检测目标网页上的目标水印是否被修改,若检测到被修改时,会重新生成目标水印,从而可以避免水印因为被修改而失效,提高水印的抗破坏性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的水印处理方法的一个流程示意图;
图2是本申请实施例提供的一个水印示意图;
图3是本申请实施例提供的一个网页界面示意图;
图4是本申请实施例提供的一个恢复水印纹理的网页界面截图示意图;
图5是本申请实施例提供的水印处理方法的另一个流程示意图;
图6是本申请实施例提供的水印处理方法的另一个流程示意图;
图7是本申请实施例提供的水印处理装置的一个结构示意图;
图8是本申请实施例提供的水印处理装置的另一个结构示意图;
图9是本申请实施例提供的网络设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种水印处理方法、装置、存储介质及计算机程序产品,该水印处理装置可以集成在网络设备中,该网络设备可以是服务器,也可以是终端等设备,其中,该终端可以包括手机、台式电脑、平板电脑、笔记本电脑、以及个人计算(PC,PersonalComputer)等设备。
其中,本申请实施例中的水印处理装置可以实时检测目标水印是否被修改,若检测到目标水印被修改,则在目标网页中重新生成目标水印,从而可以避免水印因为被修改而失效,提高水印的抗破坏性。
请参阅图1,图1是本申请一实施例提供的水印处理方法的流程示意图。该水印处理方法的执行主体可以是本申请实施例提供的水印处理装置,或者集成了该水印处理装置的终端等,其中,该水印处理装置可以采用硬件或者软件的方式实现。该水印处理方法可以包括:
101、获取目标网页,该目标网页包括目标水印。
本实施例中,目标网页可以为需要被保护的网页,例如,可以在目标网页中铺满目标水印从而达到保护网页的目的。
具体地,可以获取该目标网页对应的所有网页节点,其中,在一些实施例中,在目标网页中显示的目标水印的形状可以包含以下纹理特征:
1)目标水印的标志信息本身镂空;
2)目标水印的标志信息本身描边,描边为稍深的浅灰色;
3)目标水印的标志信息以外空间为浅灰色,且透明度值比较小。
其中,标志信息为“RTX NAME”的目标水印可以如图2所示,目标水印的标志信息可以为目标网页对应的用户信息,该用户信息可以为用户登录的账号信息、终端的身份标识号(Identity document,ID)信息或用户当前浏览页面的时间等信息。
本方案中的水印纹理特征具有较强的抗干扰和保真还原能力,可以在水印层透明度极强,且被水印覆盖的内容颜色深浅不一的情况下,还能很好的还原水印。
102、当检测到该目标水印被修改时,构建用于承载水印参数的网页容器节点。
当水印处理装置获取到目标网页之后,会实时或定时检测该目标网页上的目标水印是否被修改(改变或移除),具体地,包括以下两种情况:
a.检测目标网页的中包含网页容器节点的网页节点是否被修改。
在一些实施例中,水印处理装置可以对目标网页的网页节点进行实时检测。
在另一些实施例中,还可以设置一个定时器,每间隔一定时间(如0.1秒)对网页节点进行实时检测。
在一些实施例中,当检测到该目标网页中存在网页节点被修改时,确定被修改的网页节点是否包含该网页容器节点;若包含,则确定该目标水印被修改。
具体地,可以通过万维网(World Wide Web,Web)标准提供的变动观察器(MutationObserver)进行监听承载有水印参数的网页容器节点是否被移除(删除)、属性是否被修改、内容是否被修改,即本实施例中的修改包含修改和移除。
在一些实施例中,当MutationObserver监听到承载有网页容器节点之外的节点被移除时,可以通过向下遍历的方法,检测被移除的节点是否包含网页容器节点,如果包含网页容器节点,则确定网页容器节点被移除,目标水印被修改。
其中,向下遍历方法可以为:确认被移除节点的子节点(下游节点)中是否包含有网页节点。
b.检测目标网页当前显示的水印样式是否被修改。
在一些实施例中,可以获取所述目标网页当前显示的水印样式;确定所述水印样式与预置水印样式是否一致;若不一致,则确定所述目标水印被修改。
其中,预置水印样式为创建目标水印时设置的样式。
具体地,通过标准提供的计算属性样式(getComputedStyle)方法,可以获取当前目标网页显示的目标水印的样式。创建一个基于请求动画帧(requestAnimationFrame)的任务,在显示器刷新网页页面时,对比刷新后的样式和预置的样式的参数值,如果样式的值不同,则认为样式发生变化。
另外,为了提升抗破坏性,本实施例中节点的水印文档对象模型(DocumentObject Model,DOM)对象和样式表被分开部署,通过一个随机的样式类名连接。当网页容器节点被重建时,DOM对象和样式表都会被同时重建,每次重建,样式类名都是随机的,攻击者无法选定节点进行样式覆盖,从而提升水印的抗破坏性。
其中,当检测到目标水印被修改时,需要构建用于承载水印参数的网页容器节点,即创建DOM节点作为水印层。
本实施例中,需要通过属性样式,设置网页容器节点的透明度、覆盖面积、可穿透性。
例如,对该网页容器节点的样式进行处理,通过fixed定位,将该网页容器节点悬浮于整个网页之上,将该网页容器节点的z-index属性设置为一个非常大的值,并且将它的宽高设置为100vw和100vh从而和整个网页窗口的宽高一致,覆盖整个页面。
在一些实施例中,可以将网页容器节点的透明度opacity属性设置为0.01,这个透明度极强,人眼几乎不可见。将网页容器节点的pointer-events设置为none,这样该网页容器节点虽然覆盖在网页上,但仍然可以被穿透,不会影响用户的操作。
103、根据该目标网页对应的用户信息获取该目标水印的水印参数。
本实施例中,当检测到该目标网页上的目标水印被修改时,还需要根据该目标网页对应的用户信息获取该目标水印的水印参数,其中,该用户信息可以为用户登录的账号信息、终端的ID信息和/或用户当前浏览页面的时间等信息。
具体地,在一些实施例中,可以根据对应的用户信息拼接可缩放的矢量图形(Scalable Vector Graphics,SVG)字符串以确定水印参数。
在一些实施例中,为了提高水印参数与网页容器节点的兼容性,避免网页结构被破坏,本实施例中还可以将拼接好的SVG字符串做base64转化,转化为SVG base64字符串,作为网页容器节点的背景待用。
需要说明的是,本步骤和步骤102中的构建用于承载水印参数的网页容器节点的先后顺序此处不做限定,即步骤102中的构建用于承载水印参数的网页容器节点还可以在本步骤之后执行,也可以与本步骤同时执行。
在一些实施例中,本方案选择使用SVG作为水印参数时,由于SVG是用文本来描述图像信息的,因此,在实现水印纹理特征时,只需要按照SVG的标准,拼接出带有纹理特征的水印的SVG的字符串。且只需要拼接出字符串即可,不需要生成真实的图片。
在另一些实施例中,针对SVG在IE8等更低版本的浏览器中存在兼容性的问题,可以针对这类浏览器使用便携式网络图形(Portable Network Graphics,PNG)编码替代SVG字符串。
104、将该水印参数加入该网页容器节点。
即将包含水印参数的目标水印作为该网页容器节点的背景源,并且设置背景平铺属性,使水印重复铺满整个页面。
105、根据加入水印参数后的网页容器节点在该目标网页中重新生成该目标水印。
本实施例中,为了削弱网页容器节点被发现的可能性,提高水印的抗破坏性,本申请可以根据随机算法,将加入水印参数后的网页容器节点插入到目标网页的网页节点中,即随机插入目标网页的网页DOM树中,而不是直接插入顶层节点中。
其中,随机算法可以为:在目标网页对应的所有网页节点中挑选出可插入网页节点,具体地,可以根据目标网页节点的节点属性确定可插入节点(例如不可插入节点的属性为“can-insert=false”,可插入节点的属性为“can-insert=true”),然后确定可插入节点的个数,并用随机算法计算出一个随机数,要求该随机数小于该个数的值,用该随机数座位索引,从可插入节点中选出一个待插入节点,即选出第一待插入节点。
确定第一待插入节点之后,将会判断该位置是否可以被插入,具体地:判断第一待插入网页节点对应的可见宽高(即实际可见宽高)是否等于目标网页的窗口可见宽高。若等于,则将加入水印参数后的网页容器节点插入该第一待插入网页节点中,并基于插入包含水印参数的网页容器节点后的第一待插入网页节点,在该目标网页中重新生成目标水印。
在一些实施例中,当第一待插入网页节点对应的可见宽高不等于该目标网页的窗口可见宽高时,则确定第一待插入网页节点的上层网页节点,具体地:确定该第一待插入网页节点的父节点;并确定该父节点的兄弟节点;然后将该父节点以及该兄弟节点确定为该上层网页节点。
当确定了第一待插入网页节点的上层网页节点之后,将会从上层网页节点中确定第二待插入网页节点,具体地,在上层网页节点中随机确定第二待插入网页节点,然后再判断第二待插入节点是否为可被插入,即判断第二待插入网页节点对应的可见宽高是否等于目标网页的窗口可见宽高,若等于,则将该加入水印参数后的网页容器节点插入该第二待插入网页节点中,并基于插入包含水印参数的网页容器节点后的第二待插入网页节点,在该目标网页中重新生成该目标水印,若还是不等于,则再往上提升一层,重复随机查找,直到找到可以被插入的网页节点。
需要说明的是,在一些实施例中,本申请实施例中提及的水印可以为浅水印,其中,浅水印是对可视信息添加水印的一种方式,简单的说,添加水印有多种方式,而浅水印这种方式就是直接在原始可视信息的基础上叠加一层水印层。这种方式是成本最低,速率最快的。
由于本实施例中水印的纹理特征,在网页界面中,铺满水印的目标网页可以如图3所示,在这种情况下,无论用户截图到哪个位置,截图中都有该用户的用户名水印,但是在视觉上,水印几乎是看不见的(使用了极强的透明度和穿透属性),水印的存在不会对用户产生任何视觉和操作上的影响。
但经过处理之后,图3截图中的水印可以被恢复,恢复后的水印纹理可以如图4所示,这是由水印的纹理特征决定的。本申请可以在不影响用户浏览网页的前提下,对网页进行加水印保护,当网页被用户截图时,可以通过恢复截图中的水印获取截图用户的用户信息,防止网页被直接利用。
本申请实施例中,水印处理装置获取目标网页,其中,所述目标网页包括目标水印;当检测到所述目标水印被修改时,构建用于承载水印参数的网页容器节点;并根据所述目标网页对应的用户信息获取所述目标水印的水印参数;再将所述水印参数加入所述网页容器节点;最后根据加入水印参数后的网页容器节点在所述目标网页中重新生成所述目标水印。本方案会检测目标网页上的目标水印是否被修改,若检测到被修改时,会重新生成目标水印,从而可以避免水印因为被修改而失效,提高水印的抗破坏性。
根据上述实施例所描述的水印处理方法,以下将作进一步详细说明。
请参照图5,图5为本申请实施例提供的水印处理方法的另一流程示意图。该水印处理方法可以应用于网络设备,该实施例中的水印参数以SVG字符串为例进行说明,网页容器节点以DOM节点为例进行说明,如图5所示,该水印处理方法的流程可以如下:
501、网络设备获取目标网页。
本实施例中,获取到的目标网页中包含有目标水印,该目标水印可以起到保护目标网页中网页内容的作用。
具体地,可以获取该目标网页对应的所有网页节点,其中,在一些实施例中,在目标网页中显示的目标水印的形状可以包含以下纹理特征:
1)目标水印的标志信息本身镂空;
2)目标水印的标志信息本身描边,描边为稍深的浅灰色;
3)目标水印的标志信息以外空间为浅灰色,且透明度值比较小。
502、网络设备检测目标网页中的目标水印是否被修改,若被修改则执行步骤503,若没被修改则执行步骤509。
当水印处理装置获取到目标网页之后,会实时或定时检测该目标网页上的目标水印是否被修改(改变或移除),例如检测目标网页的中包含DOM节点的网页节点是否被修改,或直接检测目标网页当前显示的水印样式是否被修改。
具体地,在检测目标网页的中包含DOM节点的网页节点是否被修改时,可以通过Web标准提供的MutationObserver进行监听承载有水印参数的DOM节点是否被移除、属性是否被修改、内容是否被修改。
在一些实施例中,当MutationObserver监听到承载有DOM节点之外的节点被移除时,可以通过向下遍历的方法,检测被移除的节点是否包含DOM节点,如果包含DOM节点,则确定DOM节点被移除,目标水印被修改,其中,本步骤中的DOM节点为包含有SVG base64字符串的容器节点。
此外,在一些实施例中,检测目标网页当前显示的水印样式是否被修改时,需要通过标准提供的getComputedStyle方法,获取当前目标网页显示的目标水印的样式。创建一个基于requestAnimationFrame的任务,在显示器刷新网页页面时,对比刷新后的样式和预置的样式的参数值,如果样式的值不同,则认为样式发生变化,否则,则认为没有发生变化,其中,预置的样式为创建目标水印时保存的样式。
503、网络设备根据用户信息拼接SVG字符串。
当检测到目标水印对应的网页节点或目标水印的水印样式发生变化时,此时需要在目标水印中重建目标水印,其中,重建方法与初始创建该目标网页中的目标水印的方法一致。
当确定需要在目标网页中重建目标水印时,需要重新根据用户信息拼接SVG字符串,并以此作为目标水印的水印参数,其中,该用户信息可以为用户登录的账号信息、终端的ID信息和/或用户当前浏览页面的时间等信息。
504、网络设备将SVG字符串转化成SVG base64字符串。
本实施例中,为了提高水印参数与网页容器节点的兼容性,避免网页结构被破坏,本实施例中还可以将拼接好的SVG字符串做base64转化,转化为SVG base64字符串,作为DOM节点的背景待用。
505、网络设备创建DOM节点。
当检测到目标水印对应的网页节点或目标水印的水印样式发生变化时,除了拼接SVG字符串,还需要创建DOM节点,以此作为SVG字符串的容器节点,此时,刚设置好的DOM节点中不包含SVG base64字符串。
506、网络设备设置DOM节点的节点属性。
其中,当创建完DOM节点之后,还需要设置DOM节点的节点属性,具体地,可以设置DOM节点的透明度、覆盖面积、可穿透性。
在一些实施例中,可以通过fixed定位,将该DOM节点悬浮于整个网页之上,将该DOM节点的z-index属性设置为一个非常大的值,并且将它的宽高设置为100vw和100vh从而和整个网页窗口的宽高一致,覆盖整个页面。
在一些实施例中,可以将DOM节点的透明度opacity属性设置为0.01,这个透明度极强,人眼几乎不可见。将DOM节点的pointer-events设置为none,这样该DOM节点虽然覆盖在网页上,但仍然可以被穿透,不会影响用户的操作。
其中,需要说明的是,本实施例中步骤505-506与步骤504的执行顺序此处不做限定,即步骤505-506可以在步骤504之前执行,也可以于步骤504同时执行。
507、网络设备将SVG base64字符串加入DOM节点中。
当重新拼接了SVG base64字符串,以及重新创建了DOM节点之后,将会SVG base64字符串加入DOM节点中,将SVG base64字符串作为DOM节点的背景源平铺整个屏幕,使得水印铺满整个页面。
508、网络设备根据随机算法将包含有SVG base64字符串的DOM节点插入到目标网页的DOM树中,重新在目标网页中生成目标水印。
即将包含有SVG base64字符串的DOM节点(网页容器节点)插入到文档(即目标网页的DOM树中),但是为了削弱被发现的可能性,本申请采用了一个随机算法,将DOM节点插入到文档时,不是直接插入到顶层元素,而是在整个文档流中(即目标网页对应的网页节点中)寻找一个可以被插入的位置,若是直接将DOM节点插入顶层,那么开发人员很容易就可以找到水印插入的位置,水印容易被发现。
如何判断该位置是否可以插入:利用随机算法随机找到一个网页节点之后,检查该节点对应的可见宽高,当实际可见宽高等于窗口的可见宽高时,就是正确的,证明这个位置可以被DOM节点插入。当没有得到一个合适位置时,在DOM树中往上提升一层,再在提升一层后该层对应的网页节点中随机找一个位置,确认该位置是否可被插入,重复随机查找,直到找到一个合适位置。
其中,在一些实施例中,为了避免对某些节点产生不必要的影响,可在这些节点上带上特殊名称的属性。在插入文档时,遇到那些带有特殊标记的网页节点,则跳过该位置,不在该位置插入。
例如,某些节点为不可插入网页节点(即不允许DOM节点插入的节点)时,这些网页节点的属性可以为“can-insert=false”;而可插入网页节点的属性为“can-insert=true”,当碰到是否允许插入的属性为“false”的网页节点时,则跳过这些网页节点,不在这些网页节点中插入DOM节点。
其中,本申请中的随机算法可以为:从目标网页文档中挑选出可插入网页节点(排除不可插入节点),计算可插入网页节点的个数,用随机函数计算出一个随机数,要求该随机数小于该个数的值,用该随机数作为索引,取出对应的网页节点备用,而该被选网页节点就是DOM节点将要插入的位置。
509、保持原目标水印。
本实施例中,当网络设备检测目标网页中的目标水印没有被修改时,则不需要在目标网页中重建目标水印,只需保持原来的目标水印。
需要说明的是,本申请实施例中可以在目标网页对应系统的公共代码部分加入本申请中的水印处理方法。
本申请实施例中,网络设备获取目标网页,其中,该目标网页包括目标水印;当检测到该目标水印被修改时,构建用于承载水印参数的DOM节点;并根据该目标网页对应的用户信息获取该目标水印的SVG字符串;再将SVG字符串转化成SVG base64字符串,然后将该SVG base64字符串加入该DOM节点;最后根据加入SVG base64字符串后的DOM节点在该目标网页中重新生成该目标水印。本方案会检测目标网页上的目标水印是否被修改,若检测到被修改时,会重新生成目标水印,从而可以避免水印因为被修改而失效,提高水印的抗破坏性。
在本实施例中,由于本实施例中水印的纹理特征,在网页界面中,铺满水印的目标网页可以如图3所示,在这种情况下,无论用户截图到哪个位置,截图中都有该用户的用户名水印,但是在视觉上,水印几乎是看不见的(使用了极强的透明度和穿透属性),水印的存在不会对用户产生任何视觉和操作上的影响。
但经过处理之后,图3截图中的水印可以被恢复,恢复后的水印纹理可以如图4所示,这是由水印的纹理特征决定的。本申请可以在不影响用户浏览网页的前提下,对网页进行加水印保护,当网页被用户截图时,可以通过恢复截图中的水印获取截图用户的用户信息,防止网页被直接利用。一旦截图被其他网站等地方使用时,可以恢复截图中的水印,从而从水印得知泄露的源头。
下面以一个具体的场景介绍本申请实施例中的水印处理方法,请参阅图6,图6为本申请实施例中的又一个流程示意图,如下:
本申请可以在目标网页的对应系统的共用代码部分加入水印生成逻辑(即应用本申请中的水印处理方法),开始在网页中生成水印时,首先通过拼接SVG字符串的形式将用户信息加入到水印中,SVG是用文本描述的图形格式,因此,可以用非常方便的文本描述实现水印纹理特征。
带有水印纹理特征的SVG字符串生成之后,转化为SVG base64字符串,作为水印层DOM节点的背景待用。另一方面,创建一个DOM节点作为水印层,然后通过设置节点属性,控制DOM节点的透明度、覆盖面积、可穿透性等。之后将生成的SVG base64字符串作为这个DOM节点的背景。然后再通过一个随机算法,将这个DOM节点随机插入到网页DOM树中,随机算法可以起到一定的抗破坏作用。这样,网页界面上的水印效果就生成了,结束生成水印步骤。
但是,为了提高抗破坏性,还要继续对抗人为破坏该节点的情况,所以增加了对该水印变化的监听,例如对DOM节点进行监听和/或直接对显示出来水印进行监听,当监听到水印发生变化时,立即重新执行整个过程,在网页中重建该水印,用户在任何情况下都无法使水印失效。
为了更好地实施以上方法,相应的,本发明实施例还提供一种水印处理装置,该水印处理装置具体可以集成在网络设备中,该网络设备可以是服务器,也可以是终端等设备。
例如,如图7所示,该水印处理装置可以包括第一获取单元701、构建单元702、第二获取单元703、加入单元704以及生成单元705,如下:
第一获取单元701,用于获取目标网页,所述目标网页包括目标水印;
构建单元702,用于当检测到所述目标水印被修改时,构建用于承载水印参数的网页容器节点;
第二获取单元703,用于根据所述目标网页对应的用户信息获取所述目标水印的水印参数;
加入单元704,用于将所述水印参数加入所述网页容器节点;
生成单元705,用于根据加入水印参数后的网页容器节点在所述目标网页中重新生成所述目标水印。
请参阅图8,在一些实施例中,所述生成单元705包括:
第一确定子单元7051,用于在所述目标网页中的可插入网页节点中确定第一待插入网页节点;
第一插入子单元7052,用于当所述第一待插入网页节点对应的可见宽高等于所述目标网页的窗口可见宽高时,将所述加入水印参数后的网页容器节点插入所述第一待插入网页节点中;
第一生成子单元7053,用于基于插入网页容器节点后的第一待插入网页节点,在所述目标网页中重新生成所述目标水印。
在一些实施例中,所述生成单元705还包括:
第二确定子单元7054,用于当所述第一待插入网页节点对应的可见宽高不等于所述目标网页的窗口可见宽高时,确定所述第一待插入网页节点的上层网页节点;
第三确定子单元7055,用于在所述上层网页节点中确定第二待插入网页节点;
第二插入子单元7056,用于当所述第二待插入网页节点对应的可见宽高等于所述目标网页的窗口可见宽高时,将所述加入水印参数后的网页容器节点插入所述第二待插入网页节点中;
第二生成子单元7057,用于基于插入网页容器节点后的第一待插入网页节点,在所述目标网页中重新生成所述目标水印。
在一些实施例中,所述第一确定子单元7051具体用于:
根据所述目标网页中网页节点的节点属性确定所述可插入节点;
在所述可插入节点中随机确定所述第一待插入网页节点。
在一些实施例中,所述第二确定子单元7054具体用于:
确定所述第一待插入网页节点的父节点;
确定所述父节点的兄弟节点;
将所述父节点以及所述兄弟节点确定为所述上层网页节点。
在一些实施例中,所述装置还包括:
检测单元706,用于当检测到所述目标网页中存在网页节点被修改时,确定被修改的网页节点是否包含所述网页容器节点;
第一确定单元707,用于当所述被修改网页节点包含所述网页容器节点时,确定所述目标水印被修改。
在一些实施例中,所述装置还包括:
第三获取单元708,用于获取所述目标网页当前显示的水印样式;
第二确定单元709,用于确定所述水印样式与预置水印样式是否一致;
第三确定单元710,用于当所述水印样式与预置水印样式不一致时,确定所述目标水印被修改。
本申请实施例中,第一获取单元701获取目标网页,其中,所述目标网页包括目标水印;当检测到所述目标水印被修改时,构建单元702构建用于承载水印参数的网页容器节点;第二获取单元703根据所述目标网页对应的用户信息获取所述目标水印的水印参数;加入单元704再将所述水印参数加入所述网页容器节点;最后生成单元705根据加入水印参数后的网页容器节点在所述目标网页中重新生成所述目标水印。本方案会检测目标网页上的目标水印是否被修改,若检测到被修改时,会重新生成目标水印,从而可以避免水印因为被修改而失效,提高水印的抗破坏性。
本申请实施例还提供一种电子设备,其集成了本发明实施例所提供的任一种水印处理装置,所述电子设备包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行上述水印处理方法实施例中任一实施例中的步骤。
此外,本发明实施例还提供一种网络设备,如图9所示,其示出了本发明实施例所涉及的网络设备的结构示意图,具体来讲:
该网络设备可以包括一个或者一个以上处理核心的处理器901、一个或一个以上计算机可读存储介质的存储器902、电源903和输入单元904等部件。本领域技术人员可以理解,图9中示出的网络设备结构并不构成对网络设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器901是该网络设备的控制中心,利用各种接口和线路连接整个网络设备的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行网络设备的各种功能和处理数据,从而对网络设备进行整体监控。可选的,处理器901可包括一个或多个处理核心;优选的,处理器901可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器901中。
存储器902可用于存储软件程序以及模块,处理器901通过运行存储在存储器902的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据网络设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器902还可以包括存储器控制器,以提供处理器901对存储器902的访问。
网络设备还包括给各个部件供电的电源903,优选的,电源903可以通过电源管理系统与处理器901逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源903还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该网络设备还可包括输入单元904,该输入单元904可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,网络设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,网络设备中的处理器901会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器902中,并由处理器901来运行存储在存储器902中的应用程序,从而实现各种功能,如下:
获取目标网页,所述目标网页包括目标水印;当检测到所述目标水印被修改时,构建用于承载水印参数的网页容器节点;根据所述目标网页对应的用户信息获取所述目标水印的水印参数;将所述水印参数加入所述网页容器节点;根据加入水印参数后的网页容器节点在所述目标网页中重新生成所述目标水印。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本申请实施例中,网络设备获取目标网页,其中,所述目标网页包括目标水印;当检测到所述目标水印被修改时,构建用于承载水印参数的网页容器节点;并根据所述目标网页对应的用户信息获取所述目标水印的水印参数;再将所述水印参数加入所述网页容器节点;最后根据加入水印参数后的网页容器节点在所述目标网页中重新生成所述目标水印。本方案会检测目标网页上的目标水印是否被修改,若检测到被修改时,会重新生成目标水印,从而可以避免水印因为被修改而失效,提高水印的抗破坏性。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种水印处理方法中的步骤。例如,该指令可以执行如下步骤:
获取目标网页,所述目标网页包括目标水印;
当检测到所述目标水印被修改时,构建用于承载水印参数的网页容器节点;
根据所述目标网页对应的用户信息获取所述目标水印的水印参数;
将所述水印参数加入所述网页容器节点;
根据加入水印参数后的网页容器节点在所述目标网页中重新生成所述目标水印。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一种水印处理方法中的步骤,因此,可以实现本申请实施例所提供的任一种水印处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种水印处理方法、装置、存储介质及计算机程序产品进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种水印处理方法,其特征在于,包括:
获取目标网页,所述目标网页包括目标水印;
当检测到所述目标水印被修改时,构建用于承载水印参数的网页容器节点;
根据所述目标网页对应的用户信息获取所述目标水印的水印参数;
将所述水印参数加入所述网页容器节点;
根据加入水印参数后的网页容器节点在所述目标网页中重新生成所述目标水印。
2.根据权利要求1所述的方法,其特征在于,所述根据加入水印参数后的网页容器节点在所述目标网页中重新生成所述目标水印,包括:
在所述目标网页中的可插入网页节点中确定第一待插入网页节点;
若所述第一待插入网页节点对应的可见宽高等于所述目标网页的窗口可见宽高,则将所述加入水印参数后的网页容器节点插入所述第一待插入网页节点中;
基于插入网页容器节点后的第一待插入网页节点,在所述目标网页中重新生成所述目标水印。
3.根据权利要求2所述的方法,其特征在于,所述根据加入水印参数后的网页容器节点在所述目标网页中重新生成所述目标水印,还包括:
若所述第一待插入网页节点对应的可见宽高不等于所述目标网页的窗口可见宽高,则确定所述第一待插入网页节点的上层网页节点;
在所述上层网页节点中确定第二待插入网页节点;
若所述第二待插入网页节点对应的可见宽高等于所述目标网页的窗口可见宽高,则将所述加入水印参数后的网页容器节点插入所述第二待插入网页节点中;
基于插入网页容器节点后的第二待插入网页节点,在所述目标网页中重新生成所述目标水印。
4.根据权利要求2所述的方法,其特征在于,所述在所述目标网页中的可插入网页节点中确定第一待插入网页节点,包括:
根据所述目标网页中网页节点的节点属性确定所述可插入节点;
在所述可插入节点中随机确定所述第一待插入网页节点。
5.根据权利要求3所述的方法,其特征在于,所述确定所述第一待插入网页节点的上层网页节点,包括:
确定所述第一待插入网页节点的父节点;
确定所述父节点的兄弟节点;
将所述父节点以及所述兄弟节点确定为所述上层网页节点。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述构建用于承载水印参数的网页容器节点之前,所述方法还包括:
当检测到所述目标网页中存在网页节点被修改时,确定被修改的网页节点是否包含所述网页容器节点;
若包含,则确定所述目标水印被修改。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述构建用于承载水印参数的网页容器节点之前,所述方法还包括:
获取所述目标网页当前显示的水印样式;
确定所述水印样式与预置水印样式是否一致;
若不一致,则确定所述目标水印被修改。
8.一种水印处理装置,其特征在于,包括:
第一获取单元,用于获取目标网页,所述目标网页包括目标水印;
构建单元,用于当检测到所述目标水印被修改时,构建用于承载水印参数的网页容器节点;
第二获取单元,用于根据所述目标网页对应的用户信息获取所述目标水印的水印参数;
加入单元,用于将所述水印参数加入所述网页容器节点;
生成单元,用于根据加入水印参数后的网页容器节点在所述目标网页中重新生成所述目标水印。
9.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述的水印处理方法中的步骤。
10.一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行权利要求1至7任一项所述的水印处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910526997.7A CN112100551B (zh) | 2019-06-18 | 2019-06-18 | 一种水印处理方法、装置、存储介质及计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910526997.7A CN112100551B (zh) | 2019-06-18 | 2019-06-18 | 一种水印处理方法、装置、存储介质及计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112100551A true CN112100551A (zh) | 2020-12-18 |
CN112100551B CN112100551B (zh) | 2023-09-22 |
Family
ID=73749334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910526997.7A Active CN112100551B (zh) | 2019-06-18 | 2019-06-18 | 一种水印处理方法、装置、存储介质及计算机程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112100551B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112966232A (zh) * | 2021-03-12 | 2021-06-15 | 恩亿科(北京)数据科技有限公司 | 页面水印防篡改方法、系统、电子设备和可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129528A (zh) * | 2010-01-19 | 2011-07-20 | 北京启明星辰信息技术股份有限公司 | 一种web网页篡改识别方法及系统 |
CN109359260A (zh) * | 2018-09-29 | 2019-02-19 | 腾讯科技(成都)有限公司 | 网络页面更改监测方法、装置、设备以及介质 |
CN109598140A (zh) * | 2018-11-28 | 2019-04-09 | 国家电网有限公司 | 一种网页信息的保护方法和装置 |
-
2019
- 2019-06-18 CN CN201910526997.7A patent/CN112100551B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129528A (zh) * | 2010-01-19 | 2011-07-20 | 北京启明星辰信息技术股份有限公司 | 一种web网页篡改识别方法及系统 |
CN109359260A (zh) * | 2018-09-29 | 2019-02-19 | 腾讯科技(成都)有限公司 | 网络页面更改监测方法、装置、设备以及介质 |
CN109598140A (zh) * | 2018-11-28 | 2019-04-09 | 国家电网有限公司 | 一种网页信息的保护方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112966232A (zh) * | 2021-03-12 | 2021-06-15 | 恩亿科(北京)数据科技有限公司 | 页面水印防篡改方法、系统、电子设备和可读存储介质 |
CN112966232B (zh) * | 2021-03-12 | 2024-03-29 | 恩亿科(北京)数据科技有限公司 | 页面水印防篡改方法、系统、电子设备和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112100551B (zh) | 2023-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Akpınar et al. | Vision based page segmentation algorithm: Extended and perceived success | |
CN108572823B (zh) | 基于接口引擎的前后端开发管理方法及系统 | |
WO2014100582A2 (en) | Supporting color fonts | |
CN110489943B (zh) | 页面水印防篡改方法和系统 | |
CN103425794B (zh) | 基于双WebView的网页预览方法和装置 | |
CN104850388B (zh) | 网页绘制方法及装置 | |
CN108959509A (zh) | 网页水印处理方法、装置及电子设备 | |
JP2016505911A (ja) | Html5プロトコルベースのウェブページ表示方法および装置 | |
CN106951451A (zh) | 一种网页内容提取方法、装置及计算设备 | |
WO2021184896A1 (zh) | 一种页面截图方法及装置 | |
CN111159775A (zh) | 网页篡改检测方法、系统、装置及计算机可读存储介质 | |
CN102124460B (zh) | 用于网站地图的标准模式和用户界面 | |
CN109359260B (zh) | 网络页面更改监测方法、装置、设备以及介质 | |
CN113868126A (zh) | 应用调试方法、装置、设备的存储介质 | |
CN107147645A (zh) | 网络安全数据的获取方法及装置 | |
CN111309578A (zh) | 标识对象的方法和装置 | |
CN102799425A (zh) | 一种网页图形动画实现方法及装置 | |
CN105989166A (zh) | 瀑布流式显示对象的方法、装置、系统及电子设备 | |
CN114238877A (zh) | 云桌面的水印生成方法、装置及电子设备 | |
CN112100551B (zh) | 一种水印处理方法、装置、存储介质及计算机程序产品 | |
CN106789856A (zh) | 一种信息编码方法、解码方法及装置 | |
CN104050190A (zh) | 一种关系链数据处理的方法和系统、客户端 | |
CN103473214B (zh) | 一种页面文字的显示方法和装置 | |
CN103841199B (zh) | 一种实现浏览器倒计时的方法 | |
EP2657873B1 (en) | Electronic book content protection |
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 |