You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Js中如何禁用右键、禁止图片下载以实现图片保护?

首先明确结论:不存在能100%避免用户获取网页图片的方案,只要图片能在用户设备上正常渲染,就始终存在被截图、抓包提取的可能,所有防护手段都只是提高复制门槛,仅能拦截没有技术基础的普通用户。

以下是你可以逐步添加的防护措施,可基于你现有的img标签调整:

1. 禁止右键直接保存图片

你可以给img标签添加右键菜单拦截事件,也可以在图片上层叠加一层透明的div遮罩,避免用户直接选中、右键点击图片本身,修改后的参考代码如下:

<img
    src={pat.name}
    alt=""
    className="absolute "
    style={{
         top: 77,
         left: 20.5,
         zIndex: 2,
         width: 280,
         boxShadow: `0px 4px 8px 2px rgba(3, 21, 49, 0.06)`,
         pointerEvents: 'none', // 直接禁止所有鼠标事件触发在img上
    }}
    onContextMenu={(e) => e.preventDefault()} // 拦截右键菜单
/>

如果用遮罩方案,可以在img同级加一个同等大小、绝对定位的透明div,z-index比图片高1即可。

2. 提高截图盗用成本

  • 给图片添加肉眼不可见的盲水印,就算用户截图后也可以通过算法提取水印信息,用于后续的版权追溯
  • 改用canvas绘制图片,不直接在DOM中暴露img标签的src属性,普通用户无法直接通过元素审查提取图片地址
  • 可以将原图切分为多个小切片,前端加载后拼接为完整图,进一步提高直接提取原图的成本

3. 辅助限制手段

你可以额外添加网页聚焦状态下的打印屏幕快捷键拦截,不过该限制仅在用户停留在当前页面时生效,用户使用第三方截图工具、系统截图、切出页面截图都无法拦截。

注意:所有技术手段都只能提升盗用门槛,无法完全杜绝图片被获取,建议同时给图片添加明确的版权声明,从法律层面约束盗用行为。

内容的提问来源于stack exchange,提问作者NicoGulo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:06:03