Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 接受PDF文档和可执行脚本_Ruby On Rails_Security - Fatal编程技术网

Ruby on rails 接受PDF文档和可执行脚本

Ruby on rails 接受PDF文档和可执行脚本,ruby-on-rails,security,Ruby On Rails,Security,如果我允许用户上传PDF文档(仅PDF文档),恶意用户是否会在文档中包含或附加一些可执行脚本?那么标准word文档呢?如果这是一项要求,有哪些最佳实践?(对不起,我总共知道3个问题,但它们都适用!) 我正在使用thoughtbot的回形针插件,我相信您可以通过文件类型进行限制。某个东西是否“可执行”比您是否尝试执行它更重要。文件只是一个字节序列。代码只有在实际执行时才是危险的——只要文件的目的地是安全的,仅仅传输文件的行为并不会真正造成伤害。如果您以某种方式将上传的文件作为命令调用,或通过某种形

如果我允许用户上传PDF文档(仅PDF文档),恶意用户是否会在文档中包含或附加一些可执行脚本?那么标准word文档呢?如果这是一项要求,有哪些最佳实践?(对不起,我总共知道3个问题,但它们都适用!)


我正在使用thoughtbot的回形针插件,我相信您可以通过文件类型进行限制。

某个东西是否“可执行”比您是否尝试执行它更重要。文件只是一个字节序列。代码只有在实际执行时才是危险的——只要文件的目的地是安全的,仅仅传输文件的行为并不会真正造成伤害。如果您以某种方式将上传的文件作为命令调用,或通过某种形式的呈现引擎传递它,该引擎将接受来自文件的指令以执行操作,则可能会造成伤害。

您试图保护谁

根据戴维的回答,如果是你自己,你会没事的。危险来自于试图在服务器上执行或打开代码。因此,除非你的服务器自动在Adobe中打开文件,否则你很酷


如果是因为你是用户,那么你就有麻烦了。AdobeAcrobat是一个0天pdf漏洞利用的蜂巢(如Dav答案评论中所述)。最重要的是,可以通过使用像Foxit这样的替代pdf查看器来缓解这种情况,但这是无法控制的。如果你想保护你的用户免受PDF攻击和Word宏的攻击,你就面临着严峻的挑战。病毒扫描器可以检测单词宏;但不是Adobe漏洞利用(无论如何也不是全部)

因此,不用说,如果文件仍然包含某种类型的触发器,当下载并在pdf查看器中打开时会损坏客户端的操作系统、浏览器、硬盘等,那么pdf文件将不会起到多大作用。我想这更多是我的问题。在这些潜在的案例中,有什么最佳做法可以提供帮助吗?我完全同意,顺便说一句,转移行为比实际执行更不重要。想法?Acrobat Reader等的开发可以通过PDF提供(参见示例)。一种选择(虽然不一定是最有效的)是通过库处理PDF文件,并将其“打印”成只包含内容图形格式副本的新PDF文件,而不是包含任何“动态”PDF元素。当然,这意味着你的用户出于合法的原因不能使用这些动态元素,但听起来你主要是想上传视觉内容。此外,是的,MS Word文档中也存在安全漏洞,其中大多数涉及宏或类似的内容。使用某种形式的病毒扫描服务来运行上传并不是一个坏主意。