uni-app 隐私合规检测 com.taobao.weex 频繁获取剪切板

发布于 1周前 作者 yuanlaile 来自 Uni-App

uni-app 隐私合规检测 com.taobao.weex 频繁获取剪切板

项目属性
产品分类 uniapp/App
PC开发环境操作系统 Mac
PC开发环境操作系统版本号 macOS 15.1.1
HBuilderX类型 正式
HBuilderX版本号 4.36
手机系统 Android
手机系统版本号 Android 15
手机厂商 小米
手机机型 小米15pro
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

at android.content.ClipboardManager.getPrimaryClip(ClipboardManager.java:120)     
at com.taobao.weex.appfram.clipboard.WXClipboardModule.getString(Unknown Source:20)   
at com.taobao.weex.bridge.MethodInvoker.invoke(Unknown Source:2)      
at com.taobao.weex.bridge.NativeInvokeHelper$2.run(Unknown Source:33)     
at com.taobao.weex.common.WXThread$SafeRunnable.run(Unknown Source:13)    
at android.os.Handler.handleCallback(Handler.java:790)    
at android.os.Handler.dispatchMessage(Handler.java:99)    
at android.os.Looper.loop(Looper.java:164)    
at android.app.ActivityThread.main(ActivityThread.java:6495)  
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)      
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 

操作步骤:

打开APP,应用启动后弹出原声隐私政策提示框,点击不同意后跳转到首页,不操作应用,放置10分钟发现权限使用记录中仍然有读取剪切板信息的请求。

预期结果:

不授权则不允许使用读取剪切板

实际结果:

不授权仍然读取了剪切板

bug描述:

应用隐私点击不同意后,此时plus.runtime.isAgreePrivacy的值为false,但仍然频繁获取剪切版信息(见附件)

{
    "version": "1",
    "prompt": "template",
    "title": "隐私权政策提示",
    "message": "为了更好地保护您的个人信息安全,请您仔细阅读并理解我们最新更新的xxxx",
    "buttonRefuse": "不同意,继续浏览",
    "buttonAccept": "同意",
    "hrefLoader": "default",
    "backToExit": "false",
    "disagreeMode": {
        "support": true,
        "loadNativePlugins": false,
        "visitorEntry": false,
        "showAlways": true
    },
    "styles": {
        "backgroundColor": "#ffffff",
        "borderRadius": "24px",
        "title": {
            "color": "#502314"
        },
        "buttonAccept": {
            "color": "#FF8732",
            "borderRadius": "24px"
        },
        "buttonRefuse": {
            "color": "#502314",
            "borderRadius": "24px"
        },
        "buttonVisitor": {
            "color": "#502314"
        }
    }
}

Attachment


1 回复

在处理 uni-app 隐私合规问题时,特别是针对 com.taobao.weex 组件频繁获取剪切板内容的情况,首先需要明确的是,频繁的剪切板访问可能违反了隐私政策,尤其是在未经用户明确同意的情况下。为了解决这个问题,我们需要在代码中添加适当的控制和监测机制。

以下是一个基于 uni-app 的代码示例,用于限制和监控对剪切板的访问。这里假设你正在使用 weex 组件,并且需要控制其对剪切板的访问频率。

  1. 引入必要的模块
// 引入uni-app的剪切板模块
const clipboard = uni.getClipboardData();
  1. 封装剪切板访问函数
let lastAccessTime = 0; // 上次访问时间戳
const ACCESS_INTERVAL = 60000; // 访问间隔,单位毫秒(这里设置为1分钟)

function safeGetClipboardData() {
    const currentTime = Date.now();
    if (currentTime - lastAccessTime >= ACCESS_INTERVAL) {
        lastAccessTime = currentTime;
        return clipboard({
            success: function (res) {
                console.log('剪切板内容:', res.data);
                // 在这里处理剪切板内容
            },
            fail: function (err) {
                console.error('获取剪切板内容失败:', err);
            }
        });
    } else {
        console.warn('剪切板访问过于频繁,请稍后重试');
    }
}
  1. 在组件或页面中使用
<template>
    <view>
        <button @click="handleButtonClick">获取剪切板内容</button>
    </view>
</template>

<script>
export default {
    methods: {
        handleButtonClick() {
            safeGetClipboardData();
        }
    }
}
</script>
  1. 增加日志记录(可选)

为了更好地监控和调试,你可以增加日志记录功能,记录每次访问剪切板的时间、结果等信息。

function logClipboardAccess(success, data) {
    const logEntry = {
        timestamp: Date.now(),
        success: success,
        data: data || 'N/A'
    };
    // 将logEntry发送到服务器或保存到本地日志文件中
    console.log('剪切板访问日志:', logEntry);
}

// 在safeGetClipboardData的success和fail回调中加入logClipboardAccess调用

通过上述代码,你可以有效地控制和监测对剪切板的访问频率,从而确保应用符合隐私合规要求。注意,实际应用中可能还需要根据具体需求调整访问间隔和日志记录策略。

回到顶部