2017-05-31 49 views
0
-----------------------------28762240629868 
Content-Disposition: form-data; name="file"; filename="1.jpg" 
Content-Type: text/html 

ÿØÿà 
.... 

如果有人故意将Content-Type从image/jpeg更改为text/html,如何在服务器端检测它?如何检查是否在点击服务器之前处理Content-Type

+0

我假设你正在检查MIME类型?我真的不认为MIME类型很容易被欺骗 – Akintunde007

回答

0

客户端可能会发送操作内容类型的文件。如果您希望传入的附件始终是图像,请使用以下功能检查图像的高度和宽度。如果它返回FALSE,那么它不是一个图像。

imagesx($img); 

http://php.net/manual/en/function.imagesx.php

imagesy($img); 

http://php.net/manual/en/function.imagesy.php

重要:

为了安全起见,如果您不确定,请不要在网页上呈现/执行附件。只是总是强制下载图像。发送标题并强制下载它,以防万一用户能够上传.EXE文件,那么他仍然无法在浏览器上执行。

+0

我已经在使用getimagesize来验证它的形象与否。有没有什么办法获得内容类型,即; “text/html”? – Tusar

+0

您可以使用'exif_imagetype()'php函数来确定内容类型。它读取图像的第一个字节并检查其签名。 –

相关问题