Làm thế nào để quét phần mềm độc hại của các file upload bởi php

Làm thế nào để quét phần mềm độc hại của các file upload bởi php

Hướng dẫn làm thế nào để quét tất cả các tải lên thông qua php sử dụng clam antivirus (hoặc bất cứ điều gì bạn muốn) trên server/vps. Nhờ extension Suhosin chúng ta có thể thêm bảo vệ nâng cao cho php.

Bước 1: Cài suhosin extension:

Đối với hệ thống Debian

apt-get install php5-suhosin

Đối với hệ thống Centos / Fedora

yum install php-suhosin

Kích hoạt suhosin extension, xác định vị trí script và cho phép lưu log (trong user.log). Chỉnh sửa file /etc/php5/conf.d/suhosin.ini

nano /etc/php5/conf.d/suhosin.ini

Thêm vào đoạn

extension=suhosin.so
suhosin.log.syslog = 511
suhosin.log.syslog.facility = 9
suhosin.log.syslog.priority = 1
suhosin.upload.verification_script = “/usr/bin/upload.sh”

Lưu lại bằng phiếm Ctrl + O và thoát ra bằng tổ hợp phiếm Ctrl + X

Khởi động lại hệ thống web server

/etc/init.d/httpd restart

nếu không được

/etc/init.d/apache2 restart

Tạo file /usr/bin/upload.sh và thiết lập permission:

touch /usr/bin/upload.sh
chmod +x /usr/bin/upload.sh

Thêm nội dung sau vào file /usr/bin/upload.sh

#!/bin/bash
if [ -n “`clamscan –infected –no-summary $1`” ]; then
echo 0;
else
echo 1;
fi

Khi phần mềm độc hại được tìm thấy (0) upload sẽ được hủy và lưu lại log trong file /var/log/user.log:

Dec 12 00:27:08 dw suhosin[16263]: ALERT – fileupload verification script disallows file – file dropped (attacker ’xxx.xxx.xx.xxx′, file ‘/var/www/domain.com/web/wp-admin/async-upload.php’)