是否是一个安全漏洞,用于验证上传的支持是zip文件作为zip_open()的zip? -- files 领域 和 security 领域 drupal 相关 的问题

is it a security hole to verify an uploaded supposed-to-be-zip file as a zip with zip_open()?


1
vote

问题

中文

问题的主题几乎是它。

我在自定义内容类型上有一个上传小部件,用于提供zip文件。

我想验证他们提供的文件确实是一个zip文件,如果没有,则采取适当的动作。但是,首先,我需要知道是否安全地将未知的文件类型传递给zip_open(),可能使用zip_checkons标志以进行额外的完整性检查。

编辑:刚刚实现Zip_Checkons未在PHP中暴露。 :(

这是一种安全的方法来验证文件是一个zip文件吗?

英文原文

Question's subject is pretty much it.

I have an upload widget on a custom content type that is for users to provide a zip file.

I want to verify the file they provide is indeed a zip file, and take appropriate action if not. However, first I need to know if it's safe to pass an unknown file type to zip_open(), probably using the ZIP_CHECKONS flag for extra integrity checks.

edit: just realized ZIP_CHECKONS is not exposed in php. :(

Is this a safe way to verify a file is a zip file?

     

回答列表

3
 
vote
vote
最佳答案
 

对我来说似乎合理。我可能首先将文件放在临时目录中,然后在该位置使用zip_open。

您还可以使用操作系统级别命令(具有自己的风险)来验证文件的完整性,而无需实际解除它。

在上传后您是否会将zip文件存储为zip文件?这样做提出了其他问题,因为拉链可用于包含可能或可能不合适的大量文件。您可能希望获取文件的内容列表,以自动包含在您的字段中,以便下载它们的人员将知道文件内容是否有效。您也可以与 http://drupal.org/project/clamav 扫描所有文件那是上传的。

 

That seems reasonable to me. I would probably place the file in a temporary directory first and then use zip_open on it in that location.

You may also be able to use OS level commands (which come with their own risks) to verify the integrity of the file without actually unzipping it.

Are you going to store the zip files as zip files after being uploaded? Doing so presents additional issues since zips can be used to contain lots of files that may or may not be appropriate. You may want to get a list of the contents of the file to automatically include in your field so people downloading them will know if the file contents are valid. You could also integrate with something like http://drupal.org/project/clamav to scan all the files that are uploaded.

 
 
 
 

相关问题

1  如何禁用IMCE中的“上传”只保留“文件浏览器”?  ( How to disable upload in imce to only keep file browser ) 
我正在研究一个网站(drupal 6),其中filefield和imce被设置为将媒体上传到节点。 客户不希望用户在默认目录中上传文件,而是在特定地方,因为他要求我删除"上传" 可能性,只保留"文件浏览器" 。 如何对窗口小部件说明默认情况下使用"文件浏览器" ? ...

4  包括位于模块中的主目录中的PHP文件  ( Include a php file located in the home directory in a module ) 
如何在模块中包含位于My Drupal主目录中的PHP文件? ...

0  使用迁移模块迁移来自多个路径的文件  ( Migrating files from multiple paths with the migrate module ) 
我正在尝试占用一堆文件并将它们转换为链接到我系统中的这些文件的节点。现在,当我说一群束时,我正在谈论数千个,如果没有成千上万的文件。所以我需要一种方法来实现,包括使用多个目录作为源。主要是一个具有多个子目录的目录来重复通过。 所以我决定使用迁移模块。在我的模块设置中创建迁移脚本,我有一个为中间表声明的架构。此表将保留...

1  “文件”的合适文件权限是什么?  ( What is the suitable file permission for files ) 
我已经写了这个小bash脚本来重建d6.22文件权限: #!/bin/bash cd /path/to/drupal chown -R bob:www-data . find . -type d -exec chmod u=rwx,g=rx,o= {} ; find . -type f -exec chmod...

2  从菜单链路打开包含流程视频的灯箱2  ( Open a lightbox2 containing a flowplayer video from a menu link ) 
可以从主菜单中创建一个链接以打开 lightbox2 FLV视频? 我有流程器安装但不是SWF工具 我想用javascript做它,但我相信还有另一种方式 ...

1  来自UX方面的最佳WYSIWYG编辑器?  ( Best wysiwyg editor from the ux side ) 
有一堆可用的Wysiwyg Edirtors。到目前为止,我已经尝试过CKEditor(有狼人的TINYMCE)。 CKEditor是一个非常奇特,但相当复杂,重量6MB,包括源文件。 你的体验是什么最丰富和稳定的? 需要对IMCE桥模块的支持,以便能够从磁盘获取图像。 ...

0  使用户能够在Wysiwyg中从硬盘上传图片  ( Enabling users to upload pictures from their harddrive in wysiwyg ) 
我有wysiwyg模块,启用了imce,所以我可以浏览我的网站的服务器所在的照片我可以上传到我的内容。但现在的想法是让用户使用WYSIWYG编辑器(在这种情况下CKEDITOR)中将图片从其硬盘上传到网站上的博主。 任何人的经历,并知道如何做到这一点或了解这是一个很好的教程。在在线搜索答案时,我找到了介绍如何将CCK...

0  公共文件系统路径问题  ( Public file system path problem ) 
admin / config / medio / file-system中的"公共文件系统路径" 设置始终反映我的多站点目录的目录名。 我不知道是什么造成的问题,但它不会再自动设置正确的dir,我需要在创建一个站点时手动更改它。 有人是否有想到可能导致这种行为的原因? ...

1  流程错误消息  ( Flowplayer error message ) 
我正在使用视频模块与 flowplayer 模块允许我的用户上传Flash视频。如果启用了自动播放,则可以正常工作,但是如果不是,则我收到以下错误消息: 200,未找到流,netstream.play.streamNotFound,Clip:'[剪辑]'http://www.mydrupalsite.com/si...

1  是否有一个HTML5用于Drupal 6的视频播放器,在iOS设备上运行良好?  ( Is there a html5 video player for drupal 6 that run well on ios device ) 
我需要在我的drupal 6站点上播放在iOS设备(html5?)上运行良好的视频。 是可用的这样的解决方案吗? 我的网站目前使用jwplayer 6.x-1.1服务flv文件。 ...

0  通过SQL注入文件记录  ( Inject a file record through sql ) 
我目前正在尝试将一个值和文件注入一个名为"field_user_pdf" 的用户字段。 我将值添加到最初成功的下表: field_data_field_user_pdf field_revision_field_user_pdf file_managed file_usage 然后,用户可以在其用户配置文件...

2  具有选择性PDF输出的自定义视图  ( Custom view with selective pdf output ) 
我正在击中一个空白,我需要能够在一些视图(PDF)上提供打印选项(PDF)而不是其他人。 有没有人有优雅的方式? 谢谢,我很欣赏你的时间。 ...

0  缺少视频模块的视频源  ( Missing video source with video module ) 
我正在运行drupal 6.22并更新了视频模块到6.x-4.4和 ffmpeg包装器至6.x-2.0-alpha1。在我使用SWFTOOLS显示视频之前,但现在我想尝试HTML5方式。因此,MP4-Format中有视频(放在文件夹"原稿" 中)和"转换的" 转换"(转换为" )。在不幸的更新中断的更新之后,没有视频...

8  防止文件重命名  ( Prevent file renaming ) 
我有一个用相同文件名上传多个文件的用户。对他们来说,文件永远不会重命名。但是,文件在最后获取_1,_2等。 有没有办法,我可以要求drupal为重复文件名制作一个新目录,以便不需要重命名? ...

4  如何将静态文件上传到Drupal 7中的远程服务器而不是本地文件系统?  ( How to upload static files to a remote server in drupal 7 instead of local files ) 
由于Web服务器约束,我最近必须从Django迁移到Drupal 7。我想保留的旧Django设置的一个方面是托管像远程服务器上的图像和其他媒体等静态内容,因为我为此目的免费访问了大规模服务器。 与django,这与在settings.py文件中编辑一行或两个一样简单。我在Drupal中搜索如何这样做,到目前为止已经...

0  如何从内容类型的视图访问图像的文件路径  ( How to access the filepath of an image from a view on a content type ) 
我有一个问题访问上载的图像的文件路径。我正在尝试创建一个自定义旋转木马,并在一个笨拙的块中建立它。我正在拉动从内容类型的视图创建的数组: $node->language3 我的问题是URI打印出"public:///someImage.jpg" 而不是"someImage.jpg" 或"站点/全部/图像/某种...

2  以编程方式创建Vimeo视频的缩略图  ( Create thumbnails of vimeo videos programmatically ) 
我想知道是否有方便地创建Vimeo视频的缩略图。例如是否有类似图像_STYLE_URL()的函数,以创建一个样式和图像路径给定图像衍生物? 谢谢。 ...

0  尝试使用FileField Sources工作的IMCE(POPUP中没有上传按钮)  ( Trying to get imce with filefield sources working no upload button in popup ) 
我有一个干净的d6.22,cck,filefield,imagefield,filefield源和imce。没有其他模块。 当我去 http://mysite.com/imce 它一切都是完美的(见截图)。 但是当我尝试用IMCE实现图像字段作为文件菲尔德源时,我可以单击"浏览" 链接和Imce弹出窗口出现,但我在...

4  将多个值迁移到Drupal 7中的单个文件字段中,以迁移2.2  ( Migrating multiple values into a single file field in drupal 7 with migrate 2 2 ) 
我有一个文件字段,可以为图像节点类型具有多个可下载文件。这些图像将有几个版本(PSD,JPG,EPS)将可下载。我希望能够将多个值追加到此字段。当他们来自多个源列(i.eps_filename,jpg_filename,psd_filename)?时,我将如何做到这一点 我在此找到相关文档: http://drupa...

1  访问附件的属性  ( Accessing properties of attached file ) 
我有一个自定义内容类型,允许附加一个文件。在一个节点的预告片中,我想精细打印文件的日期(而不是节点的)最后修改及其大小。如何在建议模板文件中访问这些属性,也可以在基于实地的视图中生成预告片列表的视图中? 我正在使用drupal 7,以及视图模块的7.x-3。 ...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.