微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JAVA-是否可以检测文档是否包含恶意脚本?

如何解决JAVA-是否可以检测文档是否包含恶意脚本?

我正在开发一种功能用户可以在系统中上传文档[PDF,JPG,PNG,GIF]。我正在验证文件的大小,类型,名称和上载文件数的限制。 我正在使用Apache tika库基于文件中的几个字节来检测文档的类型。因此,如果我有一个文件abc.js,并将其重命名abc.pdf,API将不会接受它。 但是,可以在有效字节后将脚本添加到映像中。在这种情况下,类型是可接受的文件类型之一。
有没有一种方法可以解析和检查实际的文档内容,并检查其中是否包含恶意内容,例如Javascript /脚本语言有效载荷?

TIA

解决方法

您可以按类型读取文件,如果读取文件成功,则文件不包含任何恶意脚本,但如果读取文件有错误,则文件无效:

    if (fileType.equalsIgnoreCase("png") || fileType.equalsIgnoreCase("JPG")){
        java.io.File file = new java.io.File(filePath);
        try {
            java.awt.image.BufferedImage image = javax.imageio.ImageIO.read(file);
            if(image == null){
                //file invalid
            }
            //file valid
        }
        catch (Exception e){
            //file invalid
            e.printStackTrace();
        }
    }
    else if (fileType.equalsIgnoreCase("pdf")){
        try {
            org.apache.pdfbox.pdmodel.PDDocument document = org.apache.pdfbox.pdmodel.PDDocument.load(new java.io.File(filePath);
            if(document == null){
                //file invalid
            }
            //file valid
        }
        catch (Exception e){
            //file invalid
            e.printStackTrace();
        }
    }
    else{
        //file invalid
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。