File file = new File(filepath);
PDDocument document = PDDocument.load(file)
private static boolean isSafe(List<COSObject> pdfObjects) {
for (COSObject object : pdfObjects) {
COSBase realObject = object.getObject();
if (realObject instanceof COSDictionary) {
COSDictionary dic = (COSDictionary) realObject;
if (null != dic.getDictionaryObject(COSName.JS) || null != dic.getDictionaryObject(COSName.JAVA_SCRIPT)) {
return false;
}
} else if (realObject instanceof COSName
&& (COSName.JS.equals(realObject) || COSName.JAVA_SCRIPT.equals(realObject))) {
return false;
}
}
return true;
}
这段代码定义了一个名为 isSafe
的静态方法,用于检查给定的 pdfObjects
列表是否安全。具体来说,它会遍历 pdfObjects
列表中的每一个 COSObject
,并获取其实际对象。如果实际对象是 COSDictionary
类型,则检查字典中是否包含 COSName.JS
或 COSName.JAVA_SCRIPT
键对象;如果包含,则返回 false
,表示不安全。如果实际对象是 COSName
类型,并且等于 COSName.JS
或 COSName.JAVA_SCRIPT
,同样返回 false
。如果所有对象都不包含这些特定的 JavaScript 相关元素,则返回 true
,表示安全。