RN热更新安全问题

背景

个人开发一款可以播放视频的app,使用expo+rn,由于不开发后端服务器,后端采用网络资源,通过爬虫以插件的形式进入注入,这难免存在安全问题

方式

  • 使用new Function
  • 使用eval

问题

1. 易获得全局上下文

例如

javascript 复制代码
"use s"
const { parseDocument } = context.htmlparser2
const that = this
return {
    name: '问题插件',
    version: '0.0.1',

    //首页
    getHomeList: async function (page) {
        console.log(that, '插件环境');

        try {
            const fs = require('react-native-fs')
            console.log(fs, '插件环境----');
            return []

        } catch (error) {
            console.log(error);
            
            return []

        }

    },
    //详情页
    getDetailData: async function (id) {
        // const res = await request.get(`/anime/${id}`)
        return []
    },
    //播放地址
    getPlayUrlData: async function (url) {
        return []
    },
    //搜索
    getSearchData: async function (keyWord) {
        return []
    },
   
};

这样内部执行就获得了上下文,易获取内部缓存隐私。

解决方案

使用严格模式,在读取代码后往头添加

ts 复制代码
 const useStrict = `"use strict"\n` + code;

这样解决通过require获取rnfs或者expo-file-system库进行本地写入,防止通过axios下载木马病毒后通过上面库写入本地app内。

相关推荐
计算机魔术师2 分钟前
OpenAI 发布模型错位报告框架,披露未发布模型自行修改自身指令案例
前端
特创数字科技6 分钟前
公文Word一键批量排版工具|批量统一公文标准格式,办公自动化桌面小工具
前端·python
流水白开10 分钟前
JavaScript的原型链、类与类的继承
前端·javascript
PedroQue9914 分钟前
修复 .uvue 页面路径残留问题
前端·vite
颜进强21 分钟前
从零搭一套 WorkBuddy Skill 骨架:调接口 → 生成 HTML 报告的分层设计与流转拆解
前端·后端·ai编程
YHL26 分钟前
🔍 结构化输出:从 `JSON.parse` 到 `withStructuredOutput` 的三级火箭
前端·深度学习
YHL28 分钟前
🚰流式输出:把 LLM 的每个字,像水一样送到浏览器
前端·javascript
秋天的一阵风38 分钟前
⚡2026 年了,十万级表格还只会「虚拟滚动」?难怪你的页面照样卡顿
前端·javascript·面试
秋天的一阵风1 小时前
🤖 AI写代码越跑越快,项目组件却越来越乱?一套工程闭环根治重复造轮子 ⚡
前端·面试·ai编程