10/10/2018, 11:27

Is image? làm sao xác định 1 file có phải là file ảnh không

Dạo này em bị hack fake header file ảnh. Cho em hỏi ngoài cách check phần mở rộng và header thì làm sao xác định chính xác 1 file có phải là file ảnh hay không?
haicop viết 13:32 ngày 10/10/2018
1- check đuôi file
2- check minetype
3- resize thử ảnh
tmdthanam viết 13:39 ngày 10/10/2018
Được gửi bởi haicop
1- check đuôi file
2- check minetype
3- resize thử ảnh
Bạn có thể cho mình code cách thứ 3 không
sonnb viết 13:34 ngày 10/10/2018
Code:
//Accepted file type
$typesArray = array('jpg','png','jpeg','gif','bmp');
$imageinfo = @getimagesize($_FILES['Filedata']['tmp_name']);

if($imageinfo['mime'] != 'image/bmp' && $imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg' && $imageinfo['mime'] != 'image/jpg' && $imageinfo['mime'] != 'image/png' && isset($imageinfo))
        {
            //invalid;
        }
if (!in_array(strtolower($fileParts['extension']),$typesArray)) //invalid;
haicop viết 13:33 ngày 10/10/2018
Được gửi bởi tmdthanam
Bạn có thể cho mình code cách thứ 3 không
Là lấy size ảnh đó bạn, mình viết nhầm ý
$imageinfo = @getimagesize($_FILES['Filedata']['tmp_name']);

Bạn làm giống sonbn là ok, mình cũng làm như thế , chưa bị hack mấy.
redhill viết 13:42 ngày 10/10/2018
Vậy có khi nào bạn thấy 1 file ảnh, vẫn hiển thị ảnh bình thường nhưng bên trong có chứa code chưa
haicop viết 13:36 ngày 10/10/2018
Code thì kệ nó chứ nhỉ, đâu có chạy đc
redhill viết 13:37 ngày 10/10/2018
Được gửi bởi haicop
Code thì kệ nó chứ nhỉ, đâu có chạy đc
chạy được hay ko là còn tùy vào server, nhưng tốt nhất là nên check thêm cho an toàn, nếu gặp đúng server chạy được thì khỏi kêu.
sonnb viết 13:40 ngày 10/10/2018
Tạo file .htaccess ở thư mục up hình với nội dung như sau:

Code:
RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3
php_flag engine off
Như vậy khởi sợ có kèm code hay không nhé. Cơ bản là đuôi .gif thì dù có code ở trong cũng không được thực thi rồi. Vì thế nên mới có bước check đuôi là gì.
tmdthanam viết 13:42 ngày 10/10/2018
Được gửi bởi sonnb
Tạo file .htaccess ở thư mục up hình với nội dung như sau:

Code:
RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3
php_flag engine off
Như vậy khởi sợ có kèm code hay không nhé. Cơ bản là đuôi .gif thì dù có code ở trong cũng không được thực thi rồi. Vì thế nên mới có bước check đuôi là gì.
Việc để shell trên host nguy hiểm lắm. Không khác gì để trái bom xịt bên cạnh mình ai đảm bảo là nó không nổ. Vả lại để đó nó có thể lợi dụng site mình làm server tải file để hại những người khác vô tình mình đã tiếp tay cho chúng thế nên em mới cần check
Bài liên quan
0