[Bảo mật server] Tắt các hàm nguy hiểm trong PHP

ID Topic: 24467 • Có 1,542 lượt xem
Hình đại diện của thành viên
#1 - @285917
29/01/2014 13:59
Với những ai quản trị Webserver thì nỗi lo bị hack nói chung hay local hack nói riêng là một điều luôn thường trực. PHP cung cấp cho chúng ta một ngôn ngữ lập trình web mạnh với rất nhiều hàm gọi hệ thống, giúp các lập trình viên có thể thao tác với hệ thống một cách tiện lợi. Tuy nhiên đây cũng là điểm yếu khi mà server bị hack, hay đơn giản server bạn là share hosting và hàng xóm của bạn Up 1 con shell loại như R57 hay c99 lên. Vậy chúng ta phải chống như thế nào?

Để 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ã: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ã: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 đó :)

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.
(Firefox 26.0)
PM|Trích|Like|Sửa|Xóa|Báo cáo|Cảnh cáo
------------
Những người đã like nghiatichxanh1992 bởi bài viết có ích này (Tổng: 2):
Rating: 0.27%
NgoHaiThienVipvip
_______________
Diễn đàn chia sẻ kiến thức máy tính:
KETNOI123.COM

Ấn hiện ra để xem chữ ký của mình:
Hình đại diện của thành viên
#2 - @285951
29/01/2014 14:59
Còn chống ddos thì làm sao?
(Opera Mini 4.5.3)
PM|Trích|Like|Sửa|Xóa|Báo cáo|Cảnh cáo
_______________
Kí làm quái gì!
Hình đại diện của thành viên
#3 - @285971
29/01/2014 15:25
muốn chống ddos thì cứ đầu tư server nhé, server càng mạnh thì tác hại của ddos càng giảm :)
(Firefox 26.0)
PM|Trích|Like|Sửa|Xóa|Báo cáo|Cảnh cáo
_______________
Diễn đàn chia sẻ kiến thức máy tính:
KETNOI123.COM

Ấn hiện ra để xem chữ ký của mình:
Trả lời nhanh

Chủ đề tương tự