Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.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
Php 通过mime_content_type()和imagecreatefromjpg()验证后上载文件是否安全?_Php_Security_Image Processing_File Upload_File Type - Fatal编程技术网

Php 通过mime_content_type()和imagecreatefromjpg()验证后上载文件是否安全?

Php 通过mime_content_type()和imagecreatefromjpg()验证后上载文件是否安全?,php,security,image-processing,file-upload,file-type,Php,Security,Image Processing,File Upload,File Type,我读了很多关于用PHP安全上传文件的文章(包括),我认为这是确保上传文件安全的最好方法 首先,我使用mime\u content\u type()检查其文件的类型。 如果是JPG、JPEG或PNG,我将使用imagecreatefromjpg()克隆它,如果成功,保存新文件并销毁原始文件 我不确定这是否足够安全,或者我需要做些别的事情。 非常感谢您的帮助。TL;DR:检查真实文件内容以检测类型 我做了一些测试 当我创建文本文件并将其命名为“spoofily”spoof.jpg…时,检测到的mim

我读了很多关于用PHP安全上传文件的文章(包括),我认为这是确保上传文件安全的最好方法

首先,我使用mime\u content\u type()检查其文件的类型。 如果是JPG、JPEG或PNG,我将使用imagecreatefromjpg()克隆它,如果成功,保存新文件并销毁原始文件

我不确定这是否足够安全,或者我需要做些别的事情。 非常感谢您的帮助。

TL;DR:检查真实文件内容以检测类型 我做了一些测试

  • 当我创建文本文件并将其命名为“spoofily”
    spoof.jpg

    时,检测到的mime类型仍然是
    text/plain

  • 当我在不存在的文件上运行它时,它抛出

    PHP警告:mime\u内容\u类型(not.exist):

    无法打开流:没有此类文件或目录

  • 这意味着
    mime\u content\u type
    检查文件内容中的mime类型

    它是完全安全的吗?检测真的mime类型是安全的,这是肯定的;) 不过,您还应该检查大小或清理文件名(当重新使用时),有关更多安全性详细信息,安全堆栈上有一个很好的答案:

    请注意,在PHP手册中,这是在“Fileinfo Functions”菜单下=>这意味着它使用了文件读取机制,尽管手动输入并没有明确说明这一点…

    TL;DR:检查真实文件内容以检测类型 我做了一些测试

  • 当我创建文本文件并将其命名为“spoofily”
    spoof.jpg

    时,检测到的mime类型仍然是
    text/plain

  • 当我在不存在的文件上运行它时,它抛出

    PHP警告:mime\u内容\u类型(not.exist):

    无法打开流:没有此类文件或目录

  • 这意味着
    mime\u content\u type
    检查文件内容中的mime类型

    它是完全安全的吗?检测真的mime类型是安全的,这是肯定的;) 不过,您还应该检查大小或清理文件名(当重新使用时),有关更多安全性详细信息,安全堆栈上有一个很好的答案:

    请注意,在PHP手册中,这是在“Fileinfo Functions”菜单下=>这意味着它使用了文件读取机制,尽管手动输入并没有明确说明这一点…

    “mime\u content\u type”和“exif\u imagetype”不应用于安全目的,因为它们都允许伪造文件

    更多详情请点击以下链接:

    “mime\u内容类型”和“exif\u图像类型”不应用于安全目的,因为它们都允许伪造文件

    更多详情请点击以下链接:

    可能是@mistermartin的复制品我已经看过了。它没有提到我在这里要问什么。他们没有提到imagecreatefromjpg()可能是@mistermartin的复制品,我已经读过了。它没有提到我在这里要问什么。他们没有提到imagecreatefromjpg()