我需要在服务器端实现(.NET核心)的能力,检查Java脚本的存在PDF文档。如果有一个脚本存在,那么我需要通知它的用户。有没有可能做到这一点,而不使用付费图书馆?我将不胜感激的任何想法。
pqwbnv8z1#
跨平台的poppler utils是最简单易用的,不能保证任何手段都会发现故意遮挡的JavaScript
pdfinfo -js filename.pdf
将以纯文本形式输出任何标准的嵌入式JavaScript,因此如果文本看起来模糊,您可以提前得到警告。
包含普通/JavaScript条目的常见PDF将通过简单的纯文本搜索显示。
/JavaScript
对于可疑或压缩文件对象,一个简单的扩展是使用pdf解压缩程序(如果需要将任何内容显示为纯文本,则必须解压缩内部流)和/JavaScript标记的文本搜索,例如:-
<</S/JavaScript/JS(\n\r\n\r\n// T
然而,一篇关于PDF利用的文章可能合法地包含此文本Td [(/JavaScript)]TJ而且JS很容易在运行时进行自编辑,因此不会以/JavaScr##69pt这样简单的方式检测到您可能会对https://web.archive.org/web/20150421225342if_/http://cs.gmu.edu:80/~astavrou/research/Daiping_dsn14.pdf的第4页感兴趣对于答案不同的类似问题(针对PHP),请参见Find malicious PDF files using PHP validation?
Td [(/JavaScript)]TJ
/JavaScr##69pt
1条答案
按热度按时间pqwbnv8z1#
跨平台的poppler utils是最简单易用的,不能保证任何手段都会发现故意遮挡的JavaScript
将以纯文本形式输出任何标准的嵌入式JavaScript,因此如果文本看起来模糊,您可以提前得到警告。
包含普通
/JavaScript
条目的常见PDF将通过简单的纯文本搜索显示。对于可疑或压缩文件对象,一个简单的扩展是使用pdf解压缩程序(如果需要将任何内容显示为纯文本,则必须解压缩内部流)和
/JavaScript
标记的文本搜索,例如:-然而,一篇关于PDF利用的文章可能合法地包含此文本
Td [(/JavaScript)]TJ
而且JS很容易在运行时进行自编辑,因此不会以
/JavaScr##69pt
这样简单的方式检测到您可能会对https://web.archive.org/web/20150421225342if_/http://cs.gmu.edu:80/~astavrou/research/Daiping_dsn14.pdf的第4页感兴趣
对于答案不同的类似问题(针对PHP),请参见Find malicious PDF files using PHP validation?