10/10/2018, 00:20
Xác định mime type của file upload
php có sẵn mime_content_type but not work 4 me. Một số comment tại http://www.php.net/manual/en/functio...ntent-type.php khá chuối, các bạn có biết cách nào khác ko
Bài liên quan
Thì nó vẫn là video mà. PHP ko check mime theo cách tầm thường thế đâu.
@3do
Browser căn cứ vào header trong file để gửi header lên server. Đúng là người ta có thể giả mạo header. Tuy nhiên check thêm file ext là đủ an toàn rồi.
Nếu vẫn muốn có cách check mime vì việc gì đó thì dùng fileinfo. Nó sẽ đọc file check 1 dải byte sequence. Cũng thể nói là chính xác 100% cũng có thể là cách an toàn hơn.
Việc check extension của file khi upload trong hầu hết các trường hợp là an toàn. Tuy nhiên, với server có thể xảy ra lỗi thực thi đoạn mã độc gắn trong file trực tiếp (ví dụ file remview.php chuyển thành girl.gif rồi tải lên chẳng hạn).
Kiểm tra Mime Type với $_FILE['upload_file'] không trả về kết quả chính xác. Đổi tên một file php thành jpg nó vẫn trả về image/jpeg.
Trong trường hợp không cài thêm PECL:
* Với file ảnh, sau khi upload dùng getimagesize() để trả về mime. Nếu kết quả trả về là trống ---> Không phải file ảnh "nguyên chất"
* Với các thể loại file khác: Ngoài việc cấu hình .htaccess để bảo vệ không cho chạy file. Không biết mọi người có ý kiến nào khác?
PS: Thảo luận trong trường hợp không cài thêm php extension nhé