假设你可以将任何你想要的文件上传到服务器,但文件扩展名必须是".jpg".你能上传任何可能损害服务器的东西吗?
我的问题是文件类型验证很慢,我宁愿只检查文件扩展名是否足够安全.我无法想象可以使用伪装成图像的恶意软件的场景.
我已经看到了使用getimagesize()来验证图像的建议,但是这个功能非常慢,而且我无法弄清楚是否有必要,甚至是有效的,以防止恶意软件上传......
非常感谢有关此的任何信息.
大家好,希望有人可以提供帮助 - 给我的Android应用程序fininsh我只需要完成该类,用户可以将图像上传到服务器(MySql).
除了图像的格式是application/octet-stream而不是从我的Android应用程序发送的image/jpeg之外,一切运行良好除外?无论如何我可以打开文件application/octet-stream并将其更改为image/jpeg类型?
用于上传的php文件...
$fileName = $_FILES['uploaded']['name'];
$tmpName = $_FILES['uploaded']['tmp_name'];
$fileSize = $_FILES['uploaded']['size'];
$fileType = $_FILES['uploaded']['type'];
$fp = fopen($tmpName, 'rb');
$content = fread($fp, $fileSize);
$content = addslashes($content);
Run Code Online (Sandbox Code Playgroud)
使用表单上传表单可以正常工作没问题.但是当从具有错误图像类型的android应用程序使用时,它将blob文件保存为空0,$ fileSize显示真实大小但是当创建$ content时它根本不显示任何内容
177 rome 2.jpg image/jpeg 6876 [BLOB - 6.7 KiB] p(这是来自网页)215 myImage.jpg application/octet-stream 1066 [BLOB - 0 B](来自手机)
大家好