运维刚生成一条数据库口令,随手 Win+Shift+S 截一张发给同事核对;或者开会时选了「整个屏幕」,地址栏里还挂着一条阅后即焚链接。这两种动作都不经过 Network 面板里的业务请求,却能把明文和 # 后面的密钥交给第二个人、第二台设备、或一场会被回放的录像。上一篇写过复制之后剪贴板还会被谁读走。本文换一条路径:秘密还停在屏幕上时,截图和屏幕共享会把它交给谁。
这不是密码生成器说明书,也不是阅后即焚创建页的功能清单。问题只有一个:像素里的口令和完整 URL,会落到哪些文件、哪些会话、哪些相册。MyPassGen 的生成结果用可见文本排出来,不是圆点遮罩;焚链创建成功后,整段 s.html?id=…#… 会显示在页面上。打开即用,无需注册。Network 能证明请求行没有 # 后面那一段,证明不了截图里没有。
先做一次分流
能口头念、能走阅后即焚给指定的人,就不要整屏截图。必须截图时,框住结果区,避开地址栏和任务栏通知。开会只共享当前窗口或当前标签页,不要共享整个显示器。下面所有步骤只用一条不会上真实账户的测试口令;不要用主密码练手。
像素里的秘密:页面和地址栏
生成页上的口令不是 type="password" 的圆点。它写在结果列表里,任何人看见这块屏幕都能读。这是为了让你核对字符,不是为了防截图。圆点只能挡住旁边扫一眼的人;像素复制不区分「看起来像不像密码框」。
阅后即焚把密钥放在 URL 的 # 后面,形态是 …/s.html?id={id}#{key}。按 RFC 3986 §3.5,片段标识符只给用户代理解释,检索资源时不应发给服务器。RFC 9110 §10.1.3 进一步要求:生成 Referer 时不得带上 fragment 和 userinfo。所以访问日志和 Referer 里看不到密钥,不等于屏幕上看不到。同一份 RFC 9110 的安全考虑写得很直:片段不会进请求,但对用户代理、扩展和响应里跑起来的脚本是可见的。
地址栏是整段 URI 的展示面,包含 #。浏览器历史也会记下带片段的条目,后退能回到同一条。另一篇写过为什么密钥要放在 # 后面:那是为了不进 HTTP 请求行。截图、屏幕共享、会议录像走的是另一层——它们复制的是你看见的像素,不读 HTTP 规范。
MyPassGen 创建焚链后,结果区会写出完整链接,复制走 navigator.clipboard.writeText。创建与阅读都无需登录。你要核对的是:这串字符有没有出现在桌面 PNG、手机「截屏」相簿、或会议回放的地址栏里,而不是「服务器能不能看到明文」这一句。
截图会落到哪里
截图不是「拍完就在聊天窗口里」。操作系统会先写文件或写剪贴板,然后才轮到你粘贴。文件比消息更难收回。
Mac:默认落到桌面
Apple 支持写明:Shift-Command-3 捕捉全屏,Shift-Command-4 捕捉选区,默认以「截屏 [日期] [时间]」为文件名保存到桌面,格式是 PNG。桌面上的文件对坐在这台电脑前的人可见,也会进 Time Machine 或桌面同步(若开了 iCloud 桌面与文稿)。按住 Control 再截,例如 Control-Shift-Command-3,则写入剪贴板而不是桌面——那一条改走剪贴板路径,处理见上一篇。
Windows:图片库和剪贴板各一份
Win+PrtScn 会把整屏存进当前用户的 Pictures\Screenshots。Win+Shift+S 先把选区放进剪贴板;若截图工具打开了「自动保存原始屏幕截图」,同一张还会落到 Pictures\Screenshots。剪贴板历史打开时,Win+V 最多能看到 25 条,截图也算一条。图片库若被 OneDrive 接管,这张 PNG 会跟着同步。不要只删聊天窗口里的那一张,磁盘和云端可能还各有一份。
iPhone:截屏相簿,以及 iCloud 照片
系统截屏进入「照片」里的截屏相簿。打开了 iCloud 照片 时,拍摄的照片和视频会按原始格式上传;截屏也是照片。同一 Apple 账户下的另一台设备,过一会儿就能在相册里看见地址栏和口令。删本机一张,不等于云端和其他设备立刻消失——「最近删除」通常还要再清一次。
不要把带完整焚链的截图发进群
完整链接等于凭证。群里每个人都能打开阅读页,阅读页无需登录;第一次读完会焚毁,但截图本身还在群历史里。密钥在 # 后面只挡住服务器日志,挡不住会看图的人。必须给一个人时,把链接单独发给对方,不要截整屏。
整屏、窗口还是标签页
Chrome 的 Screen Capture API 把可共享面分成三类:标签页(browser)、窗口(window)、整块屏幕(monitor)。会议软件的选择器通常对上这三类。差别不在「有没有加密传输会议流」,而在你选了多大一块像素。
共享当前标签页:对端主要看见这一页。地址栏是否入画,取决于会议客户端有没有把浏览器外壳算进去;很多实现只推页面内容。共享一个窗口:该窗口的标题栏、地址栏、书签栏都会进去。共享整个屏幕:任务栏、其他桌面、弹到右下角的通知、后跳出来的短信验证码,全部入画。
腾讯会议公开说明过:共享时不要展示短信验证码,不要输入银行或支付口令;电脑侧应尽量只共享指定窗口,避免任务栏通知。北京银保监局的消费者提示写得更具体——屏幕共享会把输入密码、解锁和弹窗通知同步给对方。这些文本针对的是诈骗场景,技术事实对日常站会同样成立:整屏共享没有「口令框自动打码」。
Chrome 107 起,getDisplayMedia 增加了 monitorTypeSurfaces: "exclude",会议页可以不提供「整个屏幕」这一档,就是为了减少员工误选整屏。你作为分享者,选择器里仍可能看到这一档。默认选整屏,等于把生成页、地址栏和系统通知捆在一起交给会议室里的每一个人。
录像、相册同步和聊天记录
实时共享结束之后,像素往往还在。云录制、本地录像、聊天里的图片,保存时间远长于一场 30 分钟的会。
会议软件的云录制按帧保存共享画面。散会后回放,地址栏里的焚链、结果列表里的口令,仍能被逐帧读出来。主持人设了回放权限,只限制「谁点得开这段录像」,不限制「点开的人能不能看见当时的像素」。本地录像、系统自带的屏幕录制(Mac 的 Shift-Command-5,Windows 的 Xbox Game Bar)写到磁盘上的是另一份文件,通常进「影片 / 视频」目录,同样可能被网盘同步。
截图一旦发进即时通讯,就进入对方的聊天记录、服务商的附件存储,以及可能的「从图片提取文字」。你删自己这一侧,对方仍有副本。这和「网页有没有上传口令」是不同的层:生成页可以在 Network 里核对没有 POST 明文;你主动发出去的 PNG 不走那条业务接口。
另一条容易漏的是演示机、投屏和远程桌面。投到会议室电视上的画面,坐在后排的人用手机就能再截一张。远程桌面若开了剪贴板重定向,截图文件还可能出现在两端。这些都不出现在生成页的 Network 里。
对照表:四条看见路径
同一条刚显示在屏幕上的测试口令或测试焚链,至少能分成四条「谁能看见」的路径。差别不在算法名字,而在像素被复制到了哪里。
| 路径 | 谁能看见 | 你怎么当场看见 |
|---|---|---|
| 整屏 / 窗口截图 | 能打开那张 PNG 的人 | Mac 桌面;Pictures\Screenshots;手机截屏相簿 |
| 屏幕共享(整屏) | 会议室里每一个人;通知也会入画 | 对端能否读出地址栏和结果列表 |
| 会议录像 / 本地录屏 | 拿得到回放文件的人 | 散会后拖进度条,看地址栏是否入画 |
| 相册与网盘同步 | 同一云账户下的其他设备 | 另一台已登录设备的「截屏」或 Screenshots 文件夹 |
生成页用 Web Crypto 抽出随机串、并且 Network 里没有口令正文,只关掉了「上传」这一条。上表四条仍然开着。能交给密码管理器自动填充时,根本不必把口令铺在屏幕上给别人看;必须给人看时,框住最小区域,或改走阅后即焚的文字链接,不要截整屏。
当场核对
下面这组步骤不依赖任何品牌承诺。用一条不会用于真实账户的口令,以及一条只写测试句的焚链。不要拿正在用的主密码或未焚毁的真实秘密练手。
- 打开生成页,生成一条默认 16 位测试口令。不要复制,也不要用于登录。看结果列表:字符是可见的,不是圆点。打开开发者工具 Network,勾选「保留日志」,确认生成之后请求体里没有这串字符。核对上传的方法见浏览器里做加密,怎么当场核对明文没有上传。
- 用系统截图拍整屏一次。到桌面或
Pictures\Screenshots打开那张 PNG,确认测试口令和地址栏都在图里。再框选结果列表、避开地址栏,截第二次:第二张不应出现完整焚链或无关窗口。 - 若在 iPhone 或开了 iCloud 照片的设备上操作,到「照片 → 截屏」看是否出现刚才那张。有第二台同一 Apple 账户的设备时,等同步后在那台设备上打开同一相簿。
- 若 Windows 开了剪贴板历史,按 Win+V,看截图是否也在列表里。不要点固定。用「全部清除」或继续复制无意义内容,直到列表里看不见这张图。
- 开一场只有你自己的测试会议,先共享整个屏幕,用第二台设备或第二位同事看地址栏和结果列表是否入画;再改为只共享当前浏览器窗口或当前标签页,对比通知和任务栏还在不在画面里。有云录制时,散会后回放 10 秒。
- 需要把短秘密交给远程同事时,改走阅后即焚:明文上限 32 KB,密钥在
#后面,阅读页无需登录。把链接当文字发出去,不要截含地址栏的整屏。创建请求里应只有密文,不应出现测试句原文。
MyPassGen 的密码生成器按这个边界工作:随机模式 6–128 位,默认 16,低于 8 位会提示较弱;结果以可见文本列出,复制走 writeText。打开即用,无账号、无密码库。你要核对的是桌面上的 PNG、截屏相簿和会议回放,不是页面上的「已生成」。
拍完、散会之后怎么收尾
今天必须截的那一张,按这条顺序收尾:先确认框里没有地址栏、没有任务栏通知、没有另一条真实口令;再发出去。发出去之后,立刻删桌面或 Screenshots 里的原文件,清 Win+V,清手机「最近删除」。开了 iCloud 照片或 OneDrive 图片库时,到另一台设备确认同步副本也删了。
开着共享的会,先停共享再打开生成页或焚链阅读页。必须边讲边演示时,只共享当前窗口,并先把浏览器改成不显示完整 URL 的紧凑地址栏,或把窗口缩到结果区。演示机、投屏电视默认当作「后排有人在拍照」。这些环境上不要打开真实焚链,不要生成主密码。
做完「框选而不是整屏」和「散会后删 PNG、删回放」,你就已经能回答本文的问题:屏幕共享和截图时谁还能看见口令,取决于你选了多大一块像素、文件落到了哪,以及录像还在不在。生成页不上传,只说明服务器日志里没有这串字符,并不收回已经写进图片和录像的那一份。
常见问题
HTTPS 是不是已经保证截图里的密码安全?
不是。HTTPS 保护的是浏览器到服务器的传输。截图和屏幕共享复制的是本机像素,不走这条 TLS。相册同步、会议录像和误发到群里的 PNG,都不看地址栏有没有锁形图标。
密钥在 # 后面,截图是不是也拍不到?
拍得到。 # 只保证这一段不进 HTTP 请求和 Referer。地址栏、创建结果区和浏览器历史仍然显示整段 URI。整屏截图和窗口共享会把这一段变成图片里的文字。
生成密码或创建焚链需要注册吗?截图会不会被网站上传?
不需要注册。生成和创建都应留在当前标签页。系统截图是操作系统写文件,不是网站 POST。打开 Network:截图之后,请求体里不应出现那串密码。你自己把 PNG 发进聊天,才是另一条出站路径。
只共享当前标签页,是不是就安全了?
比整屏安全一档:任务栏和系统通知通常不再入画。当前页上的可见口令、结果区里的完整焚链,对端仍然看得见。需要演示流程时,用测试数据;真实口令改走文字通道或当面念。