禁止鼠标右键代码是什么?怎么设置?

深夜11点,设计师小王盯着监控警报哭笑不得——刚上传的原创样机素材,已被爬虫完整扒走。他抿了口凉透的咖啡,在Chrome控制台输入document.oncontextmenu时,忽然发现破解者竟用disable right-click bypass技巧绕过了基础防护…禁止鼠标右键代码是什么?怎么设置?


一、基础防护:JavaScript代码的攻防战

1.1 基础屏蔽方案
在HTML的<body>标签内插入以下代码,可拦截90%的普通用户右键操作:

html
<script>
document.addEventListener('contextmenu', function(e) {
  e.preventDefault();
  alert('尊重原创,请勿右键保存');
});
</script>

但此方法存在明显漏洞:

  • 用户可通过浏览器设置禁用JavaScript
  • 无法阻止Ctrl+P打印屏幕
  • 开发者工具仍可查看网页源码

1.2 进阶防御策略
配合键盘事件监听,形成双重防护网:

javascript
document.onkeydown = function(e) {
  if(e.ctrlKey && (e.keyCode === 85 || e.keyCode === 83)) { // 拦截Ctrl+U/Ctrl+S
    return false;
  }
};

二、技术方案对比分析

防护层级 实现方式 防护效果 破解难度 用户体验影响
前端基础防护 JavaScript拦截 ★★☆☆☆ 容易 中等
CSS屏蔽方案 伪元素覆盖 ★☆☆☆☆ 极易 严重
服务端防护 动态水印 ★★★★☆ 困难 轻微
混合防护 前端+服务端 ★★★★★ 极难 可控

三、企业级防护方案实操

3.1 动态水印系统
通过Canvas生成含用户ID的隐形水印,即使截图也无法消除:

javascript
function generateWatermark(userID) {
  const canvas = document.createElement('canvas');
  const ctx = canvas.getContext('2d');
  ctx.font = '14px Arial';
  ctx.fillStyle = 'rgba(200,200,200,0.2)';
  ctx.fillText(userID, 10, 20);
  return canvas.toDataURL();
}

3.2 防爬虫策略
在Nginx配置中添加防护规则:

location /protected-images/ {
  valid_referers none blocked *.yourdomain.com;
  if ($invalid_referer) {
    return 403;
  }
}

四、用户体验平衡法则

  • 白名单机制:对VIP用户开放有限右键功能
  • 引导替代:在拦截提示中添加”申请使用”按钮
  • 智能检测:当用户连续三次尝试右键时,弹出素材购买链接

深夜的启示
当小王将三重防护部署完毕,监控警报终于沉寂。他望着星空突然顿悟:真正的防护不是筑起高墙,而是让原创价值流动起来——就像他新增的”素材共享计划”,既保护版权又促进生态,反而降低了盗取动机。

(0)
野

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注