網(wǎng)頁水印
網(wǎng)頁水印可以幫助您保護(hù)企業(yè)網(wǎng)頁的版權(quán),防止網(wǎng)站信息泄露等。在使用網(wǎng)頁水印時,您需要將SASE提供的網(wǎng)頁水印SDK嵌入到業(yè)務(wù)服務(wù)器上,在發(fā)生信息泄露時,可以通過泄露的網(wǎng)頁圖片提取水印信息,溯源定位泄露人員。本文介紹如何使用網(wǎng)頁水印功能。
工作原理
當(dāng)前支持在網(wǎng)頁上嵌入明水印和暗水印,大部分的信息泄露或版權(quán)糾紛等在溯源場景主要是依賴暗水印場景。
如果嵌入的是明水印,您可以直接在網(wǎng)頁上看到明水印信息。
如果嵌入的是暗水印,您不能直接看到暗水印信息,需要在SASE控制臺提取暗水印信息。
暗水印工作原理如下:
前提條件
已購買網(wǎng)頁水印服務(wù)。具體信息,請參見數(shù)字水印計(jì)費(fèi)概述。
配置流程
網(wǎng)頁集成明暗水印
操作準(zhǔn)備
已存在一臺基于X86架構(gòu)的Linux服務(wù)器。該服務(wù)器用于部署網(wǎng)頁水印SDK。
本文以Ubuntu 24.04 64位的服務(wù)器為例。
步驟一:下載網(wǎng)頁水印SDK
登錄辦公安全平臺控制臺。
在左側(cè)導(dǎo)航欄,選擇
。在嵌入服務(wù)頁面,單擊網(wǎng)頁水印操作列下載SDK。
將網(wǎng)頁水印壓縮包下載到本地。當(dāng)前只支持Java語言。
下載的SDK壓縮包中包含如下內(nèi)容:
watermark-puretransparent-v1.0.9.jar:集成水印的SDK包,需要添加到Maven倉庫。
pureTransparentDemo:水印的Demo,您可以通過Demo進(jìn)行體驗(yàn)。
單擊AK/SK信息列的圖標(biāo),復(fù)制AK和SK信息并保存到本地。
步驟二:集成SDK
透明圖水印生成SDK,可以根據(jù)用戶輸入?yún)?shù),生成暗水印或透明水印圖片。
添加jar包依賴(maven)。
mvn install:install-file -Dfile=watermark-puretransparent-v1.0.9.jar -DgroupId=com.aliyun.security.sase -DartifactId=watermark-puretransparent -Dversion=v1.0.9 -Dpackaging=jar
<dependency> <groupId>com.aliyun.security.sase</groupId> <artifactId>watermark-puretransparent</artifactId> <version>v1.0.9</version> <scope>compile</scope> </dependency> <dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna</artifactId> <version>5.13.0</version> </dependency>
接口調(diào)用生成水印圖片。
初始化AK、SK。
/** * 初始化 ak sk * @param appKey 應(yīng)用密鑰Key * @param secret 應(yīng)用密鑰Secret * @param useLocalConfig 是否使用本地配置 0:遠(yuǎn)程配置(需要聯(lián)網(wǎng)) 1:本地配置 */ WaterMarkPNGUtils.init(appKey, secret,useLocalConfig);
生成水印圖片
方式一:生成水印圖片并輸出到文件。
ParamsFile paramsFile = new ParamsFile(); //水印,10進(jìn)制字符串,如“10012”,大小限制根據(jù)配置管控,無配置情況為1至4294967295 paramsFile.setWatermarkbitsStr(watermarkbitsStr); //寬度 paramsFile.setWidth(width); //高度 paramsFile.setHeight(height); //透明度,取值范圍為 [1, 255]。對于服務(wù)化場景建議統(tǒng)一設(shè)為 255,而后在渲染時控制透明圖,從而降低服務(wù)端壓力。 paramsFile.setAlpha(alpha); //網(wǎng)頁水印和app水印設(shè)為0,屏幕水印設(shè)為1 paramsFile.setH_idx(h_idx); //縮放 paramsFile.setScale(scale); //目標(biāo)文件路徑 paramsFile.setDestFilePath(dest); /** * 生成水印文件 * @param baseParam * @return * @throws PureTransparentException errorCode 異常碼 errorMessage 異常信息 參考《錯誤碼》 */ WaterMarkPNGUtils.waterMarkPngFile(paramsFile);
方式二:生成水印圖片到字節(jié)數(shù)組。
//水印,10進(jìn)制字符串,如“10012”,大小限制根據(jù)配置管控,無配置情況為1至4294967295 paramsBytes.setWatermarkbitsStr(watermarkbitsStr); //寬度 paramsBytes.setWidth(width); //高度 paramsBytes.setHeight(height); //透明度,取值范圍為 [1, 255]。對于服務(wù)化場景建議統(tǒng)一設(shè)為 255,而后在渲染時控制透明圖,從而降低服務(wù)端壓力。 paramsBytes.setAlpha(alpha); //網(wǎng)頁水印和app水印設(shè)為0,屏幕水印設(shè)為1 paramsBytes.setH_idx(h_idx); //縮放 paramsBytes.setScale(scale); /** * 生成水印文件 * @param baseParam * @return * @throws PureTransparentException errorCode 異常碼 errorMessage 異常信息 參考《錯誤碼》 */ byte[] destFileBytes = WaterMarkPNGUtils.waterMarkPngFile(paramsBytes); System.out.println("destFileBytes len "+destFileBytes.length); //水印,10進(jìn)制字符串,如“10012”,大小限制根據(jù)配置管控,無配置情況為1至4294967295 paramsFile.setWatermarkbitsStr(watermarkbitsStr); //寬度 paramsFile.setWidth(width); //高度 paramsFile.setHeight(height); //透明度,取值范圍為 [1, 255]。對于服務(wù)化場景建議統(tǒng)一設(shè)為 255,而后在渲染時控制透明圖,從而降低服務(wù)端壓力。 paramsFile.setAlpha(alpha); //網(wǎng)頁水印和app水印設(shè)為0,屏幕水印設(shè)為1 paramsFile.setH_idx(h_idx); //縮放 paramsFile.setScale(scale); //目標(biāo)文件路徑 paramsFile.setDestFilePath(dest); /** * 生成水印文件 * @param baseParam * @return * @throws PureTransparentException errorCode 異常碼 errorMessage 異常信息 參考《錯誤碼》 */ WaterMarkPNGUtils.waterMarkPngFile(paramsFile);
步驟三:將透明水印底圖嵌入到自研的網(wǎng)站
在HTML文件
<head></head>
引入水印文件(vm.min.js)。<script src="https://g.alicdn.com/csfe/yd-watermark-loader/1.1.4/wm.min.js"></script>
在HTML文件
<body></body>
末尾添加以下代碼。添加完成后,HTML文件會添加您設(shè)置的明水印和暗水印。使用瀏覽器打開HTML文件,會顯示明水印信息和不可見的暗水印信息。
<script> // 調(diào)用下面的方法時會渲染明水印 window.YD_WATERMARK.render({ horizontalSpace: 300, // 明水印文案之間的水平間隔,單位為像素 verticalSpace: 300, // 明水印文案之間的垂直間隔,單位為像素 opacity: 1, // 明水印文案透明度, 取值范圍[0, 1] rotateDegree: 30, // 旋轉(zhuǎn)角度,取值范圍[-180, 180] fontColor: "#ff0000", // RGB 格式的文案顏色 rows: ["<賬號名稱>", "<郵箱>"], // 多行明水印文案 }) // 調(diào)用下面的方法時會渲染暗水印 window.YD_WATERMARK.renderInvisible({ imgSrc: "透明水印底圖的URL", //您需要將獲取到的透明水印底圖上傳到公網(wǎng)上,獲取到對應(yīng)的URL opacity: 8 // 暗水印透明度 取值范圍[1-255],建議值8-10 }) </script>
水印功能函數(shù)錯誤碼
錯誤碼 | 描述 |
null_parameters | 存在為空的參數(shù) |
wrong_parameters | embed錯誤參數(shù) |
jvm_error | embed Java虛擬機(jī)錯誤 |
jni_exception | JNI初始化出錯(Office03版水印特有的錯誤),需檢查POI引用是否沖突/出錯、JDK版本、系統(tǒng)環(huán)境 |
wrong_fileFormat | 文件格式錯誤 |
imgDecodeError | 圖片解碼錯誤 |
imgSizeError | 圖片大小錯誤 |
embedException | 嵌入過程出現(xiàn)異常 |
embedExceptionUnKnow | 嵌入未知錯誤 |
invalid_carrier | 不合法的載體或參數(shù)有誤 |
embed_success | 嵌入成功 |
extract_success | 提取成功 |
extract_fail | 提取失敗 |
extract_id_exceed | 提取 |
extract_exception | 提取異常 |
ossp_error_code_success | SDK功能執(zhí)行正常 |
ossp_error_code_invalid_param | SDK加載使用了無效參數(shù) |
ossp_error_code_fail_to_download_config | SDK下載配置失敗 |
ossp_error_code_fail_to_read_config | SDK讀取配置失敗 |
ossp_error_code_invalid_config | SDK無效配置 |
ossp_error_code_unauthorized_device | 未授權(quán)設(shè)備 |
ossp_error_code_liscence_expired | 許可證過期 |
ossp_error_code_config_mismatch | SDK配置不匹配 |
ossp_error_code_unauthorized_api | SDK功能接口未授權(quán) |
ossp_error_code_invalid_session_id | SDK無效sessionId |
ossp_error_code_api_not_implemented | SDK調(diào)用接口未實(shí)現(xiàn) |
ossp_error_code_unknown | SDK未知錯誤 |
提取暗水印信息
已獲取嵌入暗水印信息的外泄網(wǎng)站圖片。
步驟一:創(chuàng)建提取任務(wù)前提條件
登錄辦公安全平臺控制臺。
在左側(cè)導(dǎo)航欄,選擇
。單擊創(chuàng)建提取任務(wù),在創(chuàng)建提取服務(wù)面板,參考如下說明配置提取文件。
配置項(xiàng)
說明
水印版本
根據(jù)購買的水印版本選擇。
水印類型
選擇網(wǎng)頁水印。
嵌入水印信息位寬
設(shè)置水印信息的位寬,位寬需要與透明水印底圖的SDK位寬(默認(rèn)為32位)保持一致。
上傳待提取水印文件
根據(jù)界面提示,上傳獲取到的泄露文件。
單擊確定。
創(chuàng)建成功后,提取服務(wù)頁面會顯示創(chuàng)建的任務(wù)信息。
步驟二:查看提取結(jié)果
登錄辦公安全平臺控制臺。
在左側(cè)導(dǎo)航欄,選擇
。單擊創(chuàng)建提取任務(wù),在創(chuàng)建提取服務(wù)面板,參考如下說明配置提取文件。
配置項(xiàng)
說明
水印版本
根據(jù)購買的水印版本選擇。
水印類型
選擇網(wǎng)頁水印。
嵌入水印信息位寬
設(shè)置水印信息的位寬,位寬需要與透明水印底圖的SDK位寬(默認(rèn)為32位)保持一致。
上傳待提取水印文件
根據(jù)界面提示,上傳獲取到的泄露文件。
單擊確定。
創(chuàng)建成功后,會在提取服務(wù)頁面顯示創(chuàng)建的任務(wù)信息。
溯源定位泄露人員
在提取服務(wù)頁面,單擊提取信息列展示。
在展開的信息中,您可以提取到暗水印原文(十進(jìn)制數(shù)字)。
例如,您是123456,映射表中123456對應(yīng)的是張三,則定位出泄露人員是員工張三,溯源定位泄露人員。
相關(guān)文檔
關(guān)于數(shù)字水印產(chǎn)品應(yīng)用場景、產(chǎn)品能力、產(chǎn)品架構(gòu)、購買渠道等內(nèi)容,請參見什么是數(shù)字水印。
如果您了解其他類型的水印,請參見: