1

知乎喜迎全平台隐写水印

 2 years ago
source link: https://www.v2ex.com/t/877614
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

知乎喜迎全平台隐写水印

  ZhiyuanLin · 11 小时 7 分钟前 · 10928 次点击

网页端或 app 端登录后截图可见

https://stegonline.iculture.cc/

验证可以这个工具的 Random Color Map 模式。

比较好奇这是怎么实现的,CSS 和 HTML 里找不到痕迹,但是禁用 JavaScript 后会消失。

这是如何做到添加了文本元素但是浏览器审查元素中看不到的?

132 条回复    2022-09-05 02:11:19 +08:00
villivateur

villivateur      11 小时 1 分钟前 via Android

https://v2ex.com/t/838484
有谁一起优化下这个,做个自动消水印 APP 吗(我想白嫖)
paxol

paxol      10 小时 56 分钟前   ❤️ 9

网页端目前确定到是一个随机命名的 div ,使用了 background 属性插入的盲水印图片。用 adblock 之类的屏蔽器添加如下规则或许可以屏蔽:

zhihu.com###root > div > div:nth-child(7)
senghoo

senghoo      10 小时 52 分钟前

看了下检查元素。很容易找到啊。root 的最后一个元素,是一个 svg 铺满的背景
Zeonjl

Zeonjl      10 小时 50 分钟前 via iPhone

这种水印是用来干啥的?
wowo243

wowo243      10 小时 46 分钟前   ❤️ 2

@Zeonjl 溯源截图人,比如溯源 泄漏内网文件 账号,或者溯源 网传图 截图人账号
Zeonjl

Zeonjl      10 小时 44 分钟前 via iPhone

@wowo243 好恐怖!看来要注意安全,不能转发截图...
ZhiyuanLin

ZhiyuanLin      10 小时 44 分钟前   ❤️ 1

感谢 @paxol   @senghoo !是我看漏了

console 执行 `document.querySelectorAll('#root > div > div:nth-child(7)')[0]`
可以看到该元素,CSS 规则是
```
.css-xxxxxx {
position: fixed;
top: 0px;
width: 100%;
height: 100%;
background: url("data:image/svg+xml;base64,此处是 base64 编码的 svg 图片,已移除") space;
pointer-events: none;
}
```

@Zeonjl 如果截图墙内 SNS 发墙外的话,用这个抓截图者违法翻墙一抓一个准。
Cavolo

Cavolo      10 小时 42 分钟前 via iPhone

App 是真的无解
vvbbb

vvbbb      10 小时 42 分钟前

恐怖 以后只能对屏拍了
ZhiyuanLin

ZhiyuanLin      10 小时 42 分钟前

这个 div 的 class 前几个字母固定是 css-,后缀是七个随机 alphanum 字符。
ZhiyuanLin

ZhiyuanLin      10 小时 41 分钟前

@vvbbb 对屏幕拍摄无解,你试试我发的那个工具还是能解析出来,可以简单二值化(这样只有纯黑纯白两色无法隐藏信息)
Zeonjl

Zeonjl      10 小时 39 分钟前 via iPhone

@ZhiyuanLin 用相机翻拍屏幕也能有水印吗?
pendulum

pendulum      10 小时 39 分钟前

ID+时间戳,透明度 0.005 ,真会玩
nVic

nVic      10 小时 34 分钟前   ❤️ 1

想想前一阵子的“百号争鸣”和“引蛇出洞”。
ZhiyuanLin

ZhiyuanLin      10 小时 33 分钟前   ❤️ 2

@Zeonjl #11 现在相机拍摄的照片色彩精准度可高了呢,只要能看清楚黑白文字这种肉眼看不见的浅色文字也能完美拍摄下来。因此还原完全无障碍。

解决方案就三个
1. 不登录+VPN 访问(防止以后不登录也会用 IP 地址等做水印)
2. 图片二值化,只有黑和白,连灰阶都没有
3. 懂代码的找是哪个元素,写规则用 uBlock Origin 之类的插件屏蔽
ZhiyuanLin

ZhiyuanLin      10 小时 23 分钟前

保存 SVG 看了下源码,大概是这个感觉:
```
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 336 75" fill="#000" fill-opacity="0.005" width="336" height="75" font-size="15px">
<text x="10" y="1.5em">这里是 UserHash</text>
<text x="10" y="3em">这里是 UserID</text>
</svg>
```
ZhiyuanLin

ZhiyuanLin      10 小时 19 分钟前

实际手机拍摄试了试,的确用 Stegonline 这个工具看不出来了,不懂有没有可能用其他色彩处理手段看出来。
nmap

nmap      10 小时 14 分钟前

还有这种黑科技啊😦
ZhiyuanLin

ZhiyuanLin      10 小时 11 分钟前   ❤️ 3

当前适用于全浏览器的 uBlock Origin 规则(屏蔽了所有带 css-XXXX 类的空 div ):
zhihu.com##div[class^=css-]:empty

不保证以后能用。
codingBug

codingBug      10 小时 11 分钟前

xlsepiphone

xlsepiphone      10 小时 10 分钟前

AllenHua

AllenHua      10 小时 6 分钟前

这真是越来越过分了。还有应用内分享,大家警惕使用,这种基本上都带有追踪参数。
a33291

a33291      10 小时 2 分钟前

真给自己脸了属于是,以为没他地球不转了.

已注销账号.
bigbyto

bigbyto      9 小时 46 分钟前

@ZhiyuanLin 这个真的是很危险,如果自己的 id 被泄漏出去,别人可以拿来替换然后截图,达到嫁祸的目的。就算没做过都是有口难辩。
Constantinus1

Constantinus1      9 小时 46 分钟前

cnrting

cnrting      9 小时 37 分钟前 via iPhone   ❤️ 62

这种未经用户同意私自 track 用户的行为在某些国家应该可以让公司破产甚至让相关人吃牢饭了,在国内你就偷着乐吧
jasonkayzk

jasonkayzk      9 小时 33 分钟前

gorc

gorc      9 小时 30 分钟前   ❤️ 1

我的方法是用画图保存为 256 色位图 bmp
oldshensheep

oldshensheep      9 小时 30 分钟前   ❤️ 1

知乎的这个水印挺低级的, 说简单点其实就是大家常见的那个全屏水印,禁止复制禁止复制那种一直重复的。

图片做一个量化水印就没了
https://blog.oldshensheep.com/toyweb/dip/
选择图片然后设置 quantify 为 2 ,水印就没了。
oldshensheep

oldshensheep      9 小时 27 分钟前   ❤️ 1

一般大家发图片网站可能会给压缩一下,很可能就把水印给呀没了。
Jaron0608

Jaron0608      9 小时 13 分钟前   ❤️ 1

看起来可以通过分享的截图反查出帐号主页了,以后又能偷偷关注女神了🐶
buttenkill

buttenkill      9 小时 4 分钟前

我已经陆续注销了知乎豆瓣逼里逼里,现在上国内网站都是游客模式
mikeven

mikeven      9 小时 2 分钟前

温水已经烫了
bsfmig

bsfmig      9 小时 1 分钟前   ❤️ 1

个人感觉可以基本判定最近几个平台加盲水印是政权意志了。多个平台一起实施同一个措施,很显然是政权强令平台实施激怒用户的做法的结果。
jiyan5

jiyan5      9 小时 0 分钟前

需要注意,搞不好,因为这个进去,其他网站可能也有这个功能
cweijan

cweijan      8 小时 57 分钟前

卧槽. .真狠啊, 老哥怎么发现的
cweijan

cweijan      8 小时 55 分钟前   ❤️ 1

@oldshensheep 外网大多都是原图不压缩的. 主要肯定是用来捉发外网的.
chonger

chonger      8 小时 48 分钟前

@buttenkill 以后不登录不给看~现在有些网站已经这样了,比如 nga
buttenkill

buttenkill      8 小时 46 分钟前

@chonger 无所谓,本来也没有啥内容了
ChefIsAwesome

ChefIsAwesome      8 小时 40 分钟前

琢磨出来这点子的程序员、产品,也不知道是留在国内得意,还是已经跑了。
mxT52CRuqR6o5

mxT52CRuqR6o5      8 小时 39 分钟前 via Android   ❤️ 1

@cnrting google play 上的知乎版本也会有水印,不知道举报会不会有用
Jirajine

Jirajine      8 小时 37 分钟前

@bigbyto 反过来说,通过替换别人 id 嫁祸的方式可以有效破坏这种水印的效力,当然推动取消的可能性不大.
paxol

paxol      8 小时 36 分钟前

@ZhiyuanLin 不知前端有无方法可以屏蔽所有的 background 属性?这样哪怕以后插了频域水印也能一定程度上预防。
sparkpark

sparkpark      8 小时 33 分钟前

不登录就不会有水印?盲猜下一步网页端不登录禁止查看
renmu

renmu      8 小时 30 分钟前 via Android

微信压了图片还能有查到水印不
Jooooooooo

Jooooooooo      8 小时 26 分钟前

不太理解公开平台的水印意义在哪...
lilyblx

lilyblx      8 小时 24 分钟前

这水印是在什么位置的?我用手机电脑截图都没发现,是很小一个吗?
mxT52CRuqR6o5

mxT52CRuqR6o5      8 小时 24 分钟前 via Android

对屏幕拍照只能说是已知的公开方法都无法顺利提取出水印,很难说是绝对安全的,还是二值化比较保险
kett

kett      8 小时 24 分钟前   ❤️ 1

“道路以目”越来越近了
mxT52CRuqR6o5

mxT52CRuqR6o5      8 小时 19 分钟前 via Android

@Jooooooooo 大翻译运动,就有可能抓到一些参与的人了
asen1987

asen1987      8 小时 17 分钟前

@lilyblx #48 网页全屏水印,要登陆后截图才有,到 lz 贴的网站上去传一下就知道了
emonber

emonber      8 小时 13 分钟前 via iPhone

如果是频域的水印就不容易检测出来了
HeyWeGo

HeyWeGo      8 小时 9 分钟前 via Android

thatlazyman

thatlazyman      8 小时 7 分钟前

知乎自己搞的? 还是上面的意思?
zhangfeideya

zhangfeideya      8 小时 6 分钟前

好家伙,这就是 源宇宙。
lilyblx

lilyblx      8 小时 3 分钟前

测试走图床时的压图或者自压 webp 就看不到了
masker

masker      8 小时 0 分钟前 via Android

快上红迪布告
novolunt

novolunt      7 小时 57 分钟前

刚用网页版截了一下,用你的工具反转,并没有发现
retrace

retrace      7 小时 53 分钟前

哎呀,这么麻烦干什么,直接用户名改成显示身份证号+户籍地址不就行了吗?
haha512

haha512      7 小时 51 分钟前

@novolunt 点击图片上方 左右箭头的右侧箭头,不断点击,图片会相应变化,有 3 中效果下会显示水印
louzhichen

louzhichen      7 小时 49 分钟前   ❤️ 5

一个不成熟想法:用 archive.org 保存网页然后再截 archive 的图片
chonger

chonger      7 小时 43 分钟前

问题在于搞这种水印就是要登录才有用,不登录就能看就能截图那搞水印有毛用?那么下一步强制登录才能看内容就是必然的了。
darer

darer      7 小时 41 分钟前

@oldshensheep 我试了下还是在的
treblex

treblex      7 小时 37 分钟前

手机好像没复现,iphone ,截图和分享长图都没有,左侧有个看不太清的色块疑似二维码
yuanhsuanhu

yuanhsuanhu      7 小时 30 分钟前

那就只有拍照咯
levelworm

levelworm      7 小时 29 分钟前 via Android

@Zeonjl 6
求问手机拍照能解决这个问题吗
Andreas8

Andreas8      7 小时 28 分钟前   ❤️ 3

头像很棒👍
pcitme

pcitme      7 小时 24 分钟前

真的假的 为啥我截图没有看到水印?
novolunt

novolunt      7 小时 22 分钟前

@pcitme 我是 60 楼,有水印,一串 hash
模式转成 Blue Plane 0 ,很明显。
oldshensheep

oldshensheep      7 小时 22 分钟前   ❤️ 3

@darer 指的是压缩还是量化呢,压缩的话要选有损压缩,压缩也和算法有关
我这里量化是消除了的,压缩(95%质量)还有痕迹。
4Ut14p1.png
ZhiyuanLin

ZhiyuanLin      7 小时 18 分钟前 via iPhone

@chonger #64 记得豆瓣的水印,未登陆显示 IP ,登陆显示 UID ,知乎目前不登陆就没有。
Jirajine

Jirajine      7 小时 17 分钟前   ❤️ 1

上面说拍照的,就不怕国产相机应用 /firmware 甚至国内厂商生产的相机硬件都会在图像输出中添加盲水印包含硬件 ID 等可溯源信息?
darer

darer      7 小时 15 分钟前

@oldshensheep 截的是热榜的界面 用的是 quantify 2 ,我记得量化就属于有损压缩(的步骤之一)吧
中间的隐水印不见了 侧边的还在
starrys

starrys      7 小时 14 分钟前

@pcitme
要登录知乎再截图,然后上传到楼主上传的网站,切换模式,会有一个或几个模式能够看到水印,水印内容是 32 位“用户 ID”、“时间戳”,将“用户 ID”使用 OCR 识别或者手抄出来,使用下面的 URL 模式就可以跳转到用户主页:
https://www.zhihu.com/people/<用户 ID>
oldshensheep

oldshensheep      7 小时 1 分钟前

@darer

"我记得量化就属于有损压缩(的步骤之一)"

是的,因为我这个量化是比较简单的映射,再者设置的量化级别不高,2 种颜色差别太大便没有合在一起。
如果增大量化级别,或者用其他映射方式也可以很容易去除水印。
yolee599

yolee599      6 小时 50 分钟前 via Android   ❤️ 3

最好的办法就是只看不发言,这种东西它在暗处你在明处,防不胜防的,你以为你发现了它的水印,去掉就行,可能还用了几套方案,还有的水印你没发现的呢。
kgloveyou

kgloveyou      6 小时 50 分钟前

@ZhiyuanLin undefined ,怎么回事?
galenzhao

galenzhao      6 小时 45 分钟前

我有个 。。。想法。
直接在 txt 中插入特殊字或符号。。。
像语气词,逗号句号这种
也不会影响语义
levenwindy

levenwindy      6 小时 42 分钟前 via Android

沉默变“哑巴”,喜迎 2 个凡是
kgloveyou

kgloveyou      6 小时 37 分钟前

网页看到了,app 没找见
ZhiyuanLin

ZhiyuanLin      6 小时 32 分钟前 via iPhone

@kgloveyou #79 Firefox 的 DOM 不太一样,怀疑你是用 Firefox ,或者有其他修改 DOM 的脚本。
cwcauc

cwcauc      6 小时 28 分钟前 via iPhone

@kgloveyou +1 我这边知乎、豆瓣和钉钉 app 都看不到
skyblond

skyblond      6 小时 10 分钟前

搞了半天都测不出来,最后灵光乍现:如果内容是账户 id 相关的,我是不是得先登陆啊

开了个隐私窗口,登录、截图,立马就看见了 hhh
darknoll

darknoll      6 小时 8 分钟前

香港存储卡都要实名认证了
alvazu

alvazu      6 小时 1 分钟前

@SteveLi77 这个脚本有用吗?我这里用 injectscript+Safari ,依然能看到水印。
SteveLi77

SteveLi77      5 小时 45 分钟前

@alvazu #88 我这边 edge+tampermonkey 可以用,如果用不了可以试试#19 的 uBlock Origin 的方法
nazunaniito

nazunaniito      5 小时 37 分钟前   ❤️ 1

大局域网的又一块拼图
docx

docx      5 小时 25 分钟前 via iPhone

不登陆似乎没有水印?
但感觉后续会变成不登陆就不给使用了
litesoar

litesoar      5 小时 14 分钟前

james2013

james2013      5 小时 12 分钟前 via Android

太恶心了
以前豆瓣也爆出有隐藏水印
fansvista

fansvista      5 小时 3 分钟前

谁能发个图看看效果?没知乎号
v2tudnew

v2tudnew      5 小时 1 分钟前

知乎大量内容需要 VIP 才能查看,或许是这个原因搞的?
wolfie

wolfie      4 小时 58 分钟前

之前豆瓣被爆出来过,被骂给去掉了。
KIzuN1

KIzuN1      4 小时 58 分钟前

FozillaMox

FozillaMox      4 小时 56 分钟前

@alvazu 大概率跟 Safari 有关。我记得 Safari 对于 zhihu.com 站点上的第三方脚本不会执行,参考这个:

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK