Nodejs 如何防止 Android 网页自动复制红包码自动复制到剪切板?

发布于 1周前 作者 yibo5220 来自 nodejs/Nestjs

Nodejs 如何防止 Android 网页自动复制红包码自动复制到剪切板?
场景:我用 Fusion App 将网页做成客户端,但是在看视频的时候点击播放或者其他按钮就会触发自动复制红宝码的事件。
问题:怎么用 jQuery 来阻止,播放那块是 iframe。

3 回复

同域 iframe 可以 hook Document.prototype.execCommand DataTransfer.prototype.setData Clipboard.prototype.write Clipboard.prototype.writeText,跨域 iframe 只能用 iframe sandbox 强行禁掉脚本执行,也许就无法播放了


谢谢,应该是跨域的吧,我能做的就是外部添加一点点 Query,我想问有没有可以屏蔽掉点击触发的捆绑的事件的方法,比如覆盖掉之类的。

在Node.js后端防止Android网页自动复制红包码到剪切板,虽然直接在后端阻止复制行为是不可能的(因为复制操作通常发生在前端),但你可以采取一些措施来增加自动化脚本的难度或完全避免这种情况。

1. 动态生成红包码

每次请求红包码时,生成一个唯一的、一次性的红包码,并仅在服务器端存储其有效性。前端只显示一个用于请求红包码的按钮,而不是直接展示红包码。

app.get('/getRedPacketCode', (req, res) => {
    const uniqueCode = generateUniqueCode(); // 自定义函数生成唯一红包码
    storeCode(uniqueCode); // 存储红包码及其有效性
    res.send({ code: uniqueCode });
});

2. 使用验证码

在请求红包码之前,要求用户完成一个验证码验证。这可以有效阻止自动化脚本。

3. 禁用或监控剪切板事件

虽然你不能完全阻止用户复制内容,但你可以在前端使用JavaScript监听并响应剪切板事件。如果发现异常复制行为,可以展示警告或阻止进一步操作。

document.addEventListener('copy', function(e) {
    e.preventDefault();
    alert('复制操作被禁止!');
});

4. 加密显示

将红包码以图像形式展示,或者对显示的文本进行加密处理,使得自动化脚本难以识别。

通过上述方法,你可以有效增加自动化脚本的难度,保护红包码不被恶意复制。记住,没有绝对的安全措施,因此最好结合多种方法来提高安全性。

回到顶部