Để chống được shell này ở mức cơ bản, chúng ta cần cài đặt mod_security, chạy php ở mức và cần phải disable một số hàm gọi hệ thống được đánh giá là nguy hiểm trong PHP, cụ thể là những hàm sau, và disable như sau:
Chúng ta mở file php.ini, tìm đến dòng bắt đầu bằng disable_funtions = và thêm vào như sau:
- Mã: Chọn tất cả
disable_functions = "dl, fsockopen, socket_create, socket_create_listen, socket_create_pair, pfsockopen, putenv, pcntl_exec, pcntl_fork, apache_child_terminate, apache_setenv, define_syslog_variables, escapeshellarg, escapeshellcmd, eval, exec, fp, fput, ftp_connect, ftp_exec, ftp_get, ftp_login, ftp_nb_fput, ftp_put, ftp_raw, ftp_rawlist, highlight_file, ini_alter, ini_get_all, ini_restore, inject_code, mysql_pconnect, openlog, passthru, php_uname, phpAds_remoteInfo, phpAds_XmlRpc, phpAds_xmlrpcDecode, phpAds_xmlrpcEncode, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, posix_setuid, posix_uname, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec, syslog, system, xmlrpc_entity_decode"
Nếu disable các hàm trên mà trang web bạn không hoạt động được thì bạn có thể sử dụng code dưới đây thay thế:
- Mã: Chọn tất cả
disable_functions = "dl, openlog, syslog, exec, passthru, shell_exec, proc_open, system, popen, fsockopen, ftp_connect, posix_setuid, socket_create, socket_create_listen, socket_create_pair, pfsockopen, putenv, pcntl_exec, pcntl_fork"
Nói chung tùy thuộc vào từng loại mã nguồn mà yêu cầu sử dụng các hàm PHP khác nhau. Nếu gặp lỗi ở đâu thì ta có thể dựa vào lỗi php đó để enable thêm các functions cần thiết cho mã nguồn đó
![Vui vẻ :)](http://chiase123.com/images/smilies/Vui-Ve.gif)
Sau đó lưu lại và khởi động lại apache, lúc này server của bạn đã được an toàn hơn.