前端仅传path路径给后端,避免攻击

前端

javascript 复制代码
async function getpath(path){
    try{
        const response = await fetch('http://127.0.0.1:8080/getDownUrl/',{
        method : 'POST',
        headers: {
            'Content-Type' : 'application/json',
        },
        body:JSON.stringify({path:path})

    });
    if (!response.ok){
        showError('请求路径异常,请稍后重试!');
    }
    const data = await response.json();
    return data;
    }catch(error){
        showError('请求路径异常:${error.message}');
        throw error;
    }

}

//监听上传请求完成
xhr.addEventListener('load',()=>{
    if (xhr.status === 200){
    const res = JSON.parse(xhr.responseText);
    //这里DOWNLOAD_FILE_URL,后续改为服务器配置,前端仅传入path给后端,避免被攻击的风险。
    const path = res.Result.Path;
    getapath(path)
        .then(result =>{
        console.log('获取到的数据:',result);
        const d_url  = result.content;
        // 传输完成后,更新为待处理字样
        updateProgress(attachment.id, DICT.UPLOAD_COMPLETED);
        
        // 将文件路径记录在对应的input里面
        let tempInput = document.getElementById(attachment.id);
        tempInput.value = d_url;

        // 上传完成后 校验 激活 开始处理按钮
        validFileList(); 
      
})
        .catch(error =>{
            console.log('操作失败请重试',error); 
}); 
}else{
    showError('转写失败,请重试');
}

});

后端

python 复制代码
calss GetDownUrl(BaseModel):
    path:str


@app.post('/getDownUrl/')
async def get_down_url(request:GetDownUrl):
    """获取下载路径"""
    path  = request.path

    try:
        if path:
            down_url = f'{DOWN_URL_IP}/api/true&Path={Path}'
        else:
            return {'status':1,"content":'',"error_msg":""}
    except Exception as e:
        error_msg = f"传入path错误: {str(e)}"
        logger.error(error_msg)
        return {'status':0,"content":'',"error_msg":error_msg}
相关推荐
用户938515635079 小时前
从零在浏览器里跑 DeepSeek-R1:WebGPU + Transformer.js 全链路实战
前端·设计模式·typescript
CodeSheep9 小时前
稚晖君公司人事大变动,来了!
前端·后端·程序员
鱼樱前端9 小时前
用 AI 做内容变收入
前端·人工智能·ai编程
浮生望10 小时前
React + TypeScript 组件设计进阶:从类型约束到无状态组件的三次进化
前端
90后的晨仔10 小时前
Mac 开发 uni-app 终极方案:让安卓模拟器彻底脱离 Android Studio 独立运行
前端·vue.js
90后的晨仔10 小时前
别再搞混了!uni-app 中 node_modules 和 uni_modules 到底是什么关系?
前端
kyriewen11 小时前
面试官问"这段逻辑为什么这样写"——我才发现,这半年我写的代码,我自己都解释不了
前端·javascript·面试
谢小飞11 小时前
大文件上传很难?学会这招,GB文件秒传不是梦
前端·node.js
程序员黑豆12 小时前
Windows 系统 Java 环境变量配置全攻略:解决“不是内部或外部命令”
java·前端·ai编程
To_OC12 小时前
别只拿 useRef 绑 DOM 了,搭配 Web Worker 解决页面卡顿才是真的香
前端·react.js·dom