本文介绍: 在若依框架内如果使用上传组件前端默认读取文件内容,如果文件格式html,并且文件内容含有一些方法,如alert()等,就会直接运行可能对系统造成伤害,如果系统需要安全测试,这属于一个储存型xss漏洞

在若依框架内如果使用上传组件前端默认读取文件内容,如果文件格式html,并且文件内容含有一些方法,如alert()等,就会直接运行可能对系统造成伤害,如果系统需要安全测试,这属于一个储存型xss漏洞

这地方记录一个简单解决方式

1、前端限制文件格式,不支持html格式的文件上传

2、后端也同样做校验限制html文件格式上传,加强保险

前端代码

<input id="singleFile" name="file" type="file"/>

js:

$(document).ready(function () {
    // 多图上传
    $("#singleFile").fileinput({
        uploadUrl: ctx + 'system/uploads', //上传路径
        uploadAsync: false, //异步上传
        allowedFileExtensions:['zip'], //指定上传文件类型
    })
});

后端代码:

@PostMapping("/uploads")
@ResponseBody
public AjaxResult uploadFiles(@RequestParam("file") MultipartFile file) throws Exception
{
    try
    {
        String extension =FileUploadUtils.getExtension(file);
        if(extension.equals("html")){
            return AjaxResult.error("不支持后缀名html文件格式");
        }else {
        //后端上传代码
 

       String filePath = RuoYiConfig.getUploadPath();

       // 上传并返回文件名

       String fileName = FileUploadUtils.upload(filePath, file);

       fileInfo.setFilePath(fileName);

       return toAjax(sysFileInfoService.insertSysFileInfo(fileInfo));

        }
    }
    catch (Exception e)
    {
        return AjaxResult.error(e.getMessage());
    }
}

原文地址:https://blog.csdn.net/weixin_43267639/article/details/130581742

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_25854.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

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