Để dễ sử dụng, bạn có thể chỉnh sửa tệp plugin và chủ đề trực tiếp từ bảng điều khiển WordPress của mình – nhưng điều này cũng có thể khiến trang web của bạn dễ bị khách truy cập độc hại tấn công. Đây là cách sử dụng plugin Sucuri Security để bảo vệ trang web của bạn bằng cách tắt trình chỉnh sửa tệp khi không cần thiết
Cần thiết. Bạn phải cài đặt plugin Sucuri Security trước khi làm theo các bước sau
- Đăng nhập vào WordPress
- Trong menu bên trái, chọn Bảo mật Sucuri > Cài đặt
- Chọn tab Làm cứng
- Tìm phần có nhãn Vô hiệu hóa Plugin và Trình chỉnh sửa chủ đề
- Nếu phần này có màu đỏ, hãy chọn Áp dụng cứng. Nếu nó có màu xanh lá cây, quá trình làm cứng đã được áp dụng
Ghi chú. Nếu bạn không thể áp dụng hoặc hoàn nguyên cài đặt cứng cho tính năng này, nó có thể đã được xử lý bởi nền tảng lưu trữ của bạn
Không có gì phải bàn cãi khi PHP là một trong những ngôn ngữ lập trình kịch bản máy chủ được sử dụng nhiều nhất. Thật hợp lý khi kẻ tấn công tìm ra nhiều cách khác nhau để hắn có thể thao túng PHP vì nó thường được ghép nối với MySQL và cho phép truy cập vào dữ liệu riêng tư của người dùng của bạn
Bằng mọi cách, chúng tôi không khẳng định PHP dễ bị tổn thương hoặc có một số vấn đề nghiêm trọng theo mặc định nhưng chúng tôi phải đảm bảo rằng chúng tôi đã tinh chỉnh PHP theo cách để nó có thể mạnh mẽ hơn bao giờ hết
1. Xóa các mô-đun PHP không cần thiết
Theo mặc định, bạn nhận được một tập hợp các mô-đun PHP có thể hữu ích trong các tác vụ khác nhau nhưng một số mô-đun không cần thiết có thể không hữu ích cho từng dự án. Để liệt kê các mô-đun PHP có sẵn, hãy sử dụng lệnh đã cho
$ php -m
Các mô-đun được đặt tại thư mục
$ ls6 và có thể dễ dàng thay đổi thư mục hiện tại của chúng tôi thành /etc/php. d/ bằng cách sử dụng lệnh cd sau
cd /etc/php.d/
Lý do tại sao chúng tôi thay đổi thư mục để loại bỏ các mô-đun là các mô-đun được đặt tên hoàn toàn khác trong thư mục gốc. Bây giờ, liệt kê các mô-đun có sẵn bằng lệnh đã cho
$ ls
Ví dụ: hãy xóa mô-đun curl bằng cách sử dụng lệnh đã cho
$ sudo rm -r 20-curl.ini
2. Vô hiệu hóa thực thi mã PHP từ xa
Trong hầu hết các trường hợp, không thể tin cậy các kết nối từ xa. Bằng cách vô hiệu hóa quyền truy cập vào trình bao bọc fopen, họ chỉ có thể truy cập các tệp cục bộ. Để tắt fopen, chúng ta cần mở tệp cấu hình PHP bằng cách sử dụng lệnh đã cho
$ sudo nano /etc/php.ini
Bây giờ, hãy sử dụng
$ ls7 và nhập
$ ls8 sẽ đưa chúng tôi đến các dòng cụ thể từ đó chúng tôi sẽ tắt các tùy chọn đó
allow_url_fopen=Off allow_url_include=Off
Khi bạn đã hoàn tất các thay đổi, hãy lưu tệp cấu hình trước
$ ls9 và nhấn Enter
3. Vô hiệu hóa rò rỉ thông tin PHP
Khi không bị tắt, thế giới có thể dễ dàng xác định phiên bản PHP nào hiện đang được máy chủ web của chúng tôi sử dụng. Điều này nghe có vẻ không phải là vấn đề lớn nhưng để kẻ tấn công biết phiên bản chính xác có thể nguy hiểm
$ sudo nano /etc/php.ini
Bây giờ, thay đổi mặc định thành
$ sudo rm -r 20-curl.ini0
$ ls2
4. Vô hiệu hóa nhật ký lỗi PHP
Theo mặc định, mọi lỗi của máy chủ web của chúng tôi đều hiển thị với khách truy cập, bao gồm cả những kẻ tấn công. Để đảm bảo rằng không có lỗi nào hiển thị với bất kỳ ai, chúng tôi phải thực hiện các thay đổi trong tệp cấu hình PHP của mình
$ sudo nano /etc/php.ini
Và thay đổi cài đặt mặc định hiển thị nhật ký lỗi thành
$ sudo rm -r 20-curl.ini0
$ ls5
Nhưng nếu bạn là nhà phát triển và cần có nhật ký lỗi để khắc phục các sự cố phát triển thì sao?
Chúng tôi chỉ cần kích hoạt log_errors và cung cấp đường dẫn đến error_log nơi các tệp nhật ký của chúng tôi sẽ được lưu trữ
cd /etc/php.d/0
5. Kiểm soát tài nguyên PHP
Theo chúng tôi, quản lý tài nguyên là phần quan trọng nhất khi bảo mật PHP. Ở đây, chúng tôi sẽ phân bổ một lượng thời gian thực thi, thời gian đầu vào và giới hạn bộ nhớ cố định, vì vậy nếu bằng cách nào đó, tập lệnh của chúng tôi bị xâm phạm, quá trình thực thi sẽ bị dừng sau một thời gian nhất định
Chúng tôi đã chọn 25 giây cho thời gian thực hiện và đầu vào và 30 MB giới hạn bộ nhớ. Chắc chắn bạn có thể tùy chỉnh nó theo nhu cầu của bạn
cd /etc/php.d/1
6. Hạn chế quyền truy cập tệp PHP
Để hạn chế quyền truy cập tệp, chúng tôi sẽ bật
$ sudo rm -r 20-curl.ini2 để đảm bảo rằng PHP chỉ có thể bao gồm các tệp từ các thư mục được liệt kê của chúng tôi
Quan trọng. Điều này sẽ chặn danh sách tất cả các thư mục khác và yêu cầu chúng tôi thêm các thư mục quan trọng theo cách thủ công, bao gồm cả việc thêm các tệp tạm thời và thư mục phiên
cd /etc/php.d/2
7. Định cấu hình tải lên tệp PHP
Nếu ứng dụng của bạn không yêu cầu tải tệp lên từ phía người dùng, bạn nên tắt tính năng tải tệp lên. Điều này ngăn những kẻ tấn công tải lên các tập lệnh nguy hiểm mà cuối cùng có thể làm hỏng toàn bộ ứng dụng
cd /etc/php.d/3
Nhưng nếu ứng dụng của bạn được thiết kế để lấy tệp từ phía người dùng thì sao?
cd /etc/php.d/4
Trong PHP, theo mặc định, các tệp tạm thời được đặt trong một thư mục mà tất cả người dùng hệ thống có thể ghi. Vị trí mặc định phải được chuyển sang một nơi an toàn hơn và đảm bảo rằng nó không nằm trong thư mục gốc của web
Vì chúng tôi đã sử dụng open_basedir, chúng tôi sẽ sử dụng cùng một vị trí như chúng tôi đã đưa vào danh sách trắng
cd /etc/php.d/5
8. Vô hiệu hóa các chức năng PHP nguy hiểm
PHP có nhiều chức năng khác nhau được bật theo mặc định và có thể hữu ích cho mục đích phát triển. Tuy nhiên, nhiều chức năng có thể bị tin tặc sử dụng để khai thác máy chủ web của chúng tôi và việc vô hiệu hóa chúng sẽ tạo thêm một lớp bảo mật
Chúng tôi có một bộ chức năng bị vô hiệu hóa và đảm bảo kiểm tra chéo chúng trước khi thay đổi tệp cấu hình
cd /etc/php.d/6
9. Thay đổi thư mục bộ đệm SOAP
Khi chúng tôi thay đổi phiên và thư mục tạm thời mặc định, điều tương tự cũng áp dụng cho bộ đệm SOAP vì nó không nên được lưu vào thư mục mặc định. Hãy chắc chắn rằng nó được lưu vào một nơi an toàn
cd /etc/php.d/7
10. Kiểm soát kích thước POST PHP
Bằng cách kiểm soát kích thước POST, chúng tôi có thể bảo mật máy chủ của mình khỏi tin tặc đang cố gắng làm tắc nghẽn tài nguyên máy chủ bằng cách gửi các tệp lớn. Điều này giúp chúng tôi tránh khỏi sự cố máy chủ không mong muốn và thời gian phản hồi chậm
cd /etc/php.d/8
11. Bảo vệ cấu hình PHP
Trong khi xóa các tệp không cần thiết, chúng tôi thường xóa một số tệp quan trọng hoặc thậm chí cả thư mục. Vì vậy, chúng tôi phải tinh chỉnh cài đặt theo cách mà ngay cả người dùng root cũng không thể xóa chúng. Để tạo tệp và thư mục, chúng tôi sẽ sử dụng chattr với các cờ khác nhau
Khi bạn sử dụng lệnh đã cho, bạn không thể sửa đổi hoặc xóa một tệp cụ thể nữa
cd /etc/php.d/9
Trong khi cố gắng xóa một tệp không thể thay đổi, nó sẽ hiển thị lỗi cho biết “Thao tác không được phép”
$ ls0
Nhưng nếu bạn muốn tiếp tục viết các tệp đó trong khi làm cho chúng không thay đổi thì sao?
$ ls1
Có thể có một số trường hợp bạn không cần tệp cấu hình cũ nữa và trong trường hợp đó, chúng tôi phải hủy đặt thuộc tính
$ ls2
Tương tự, nếu bạn đã sử dụng thuộc tính
$ sudo rm -r 20-curl.ini3 trong quá trình tạo tệp không thay đổi, bạn có thể đảo ngược nó bằng cách sử dụng lệnh đã cho
$ ls3
12. Sử dụng chứng chỉ SSL cho HTTPS
Ngày nay, mọi trình duyệt hiện đại như Google Chrome, Firefox, Opera và các trình duyệt khác đều khuyến nghị sử dụng HTTPS cho máy chủ web. Vì HTTPS cung cấp kênh truy cập được mã hóa và bảo mật cho các trang web không đáng tin cậy, chúng tôi có thể cung cấp trải nghiệm đáng tin cậy cho người dùng của mình
Bằng cách thêm HTTPS, chúng tôi có thể được bảo vệ khỏi các cuộc tấn công XSS, bao gồm cả việc ngăn chặn tin tặc đọc dữ liệu được vận chuyển bằng mã
Để kích hoạt HTTPS, chúng tôi sẽ cài đặt và sử dụng Chứng chỉ SSL Let’s Encrypt miễn phí trên máy chủ
$ ls4
13. Cập nhật PHP thường xuyên
Vì nó là một ngôn ngữ mã nguồn mở, nó được vá gần như hàng ngày. Nó có vẻ không phải là một bước quan trọng nhưng có thể cứu bạn khỏi lỗ hổng lớn. Vì vậy, hãy đảm bảo luôn cập nhật các gói PHP của bạn, điều này sẽ giúp bạn tránh được nhiều lỗ hổng có thể xảy ra
$ ls5
Đây là ý kiến của chúng tôi về cách bạn có thể dễ dàng nâng cao tính bảo mật của PHP trong các hệ thống Linux. Trong suốt hướng dẫn này, chúng tôi đã cố gắng làm mọi thứ đơn giản nhất có thể và nếu bạn vẫn còn thắc mắc, vui lòng cho chúng tôi biết trong phần nhận xét