Tăng cường bảo mật php

Để 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

  1. Đăng nhập vào WordPress
  2. Trong menu bên trái, chọn Bảo mật Sucuri > Cài đặt
  3. Chọn tab Làm cứng
  4. Tìm phần có nhãn Vô hiệu hóa Plugin và Trình chỉnh sửa chủ đề
  5. 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
Tăng cường bảo mật php
Tăng cường bảo mật php
Liệt kê các mô-đun PHP

Các mô-đun được đặt tại thư mục

$ ls
6 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
Tăng cường bảo mật php
Tăng cường bảo mật php
Kiểm tra các mô-đun PHP

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

$ ls
7 và nhập
$ ls
8 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
Tăng cường bảo mật php
Tăng cường bảo mật php
Tắt thực thi mã PHP từ xa

Khi bạn đã hoàn tất các thay đổi, hãy lưu tệp cấu hình trước

$ ls
9 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.ini
0

$ ls
2
Tăng cường bảo mật php
Tăng cường bảo mật php
Tắt rò rỉ thông tin PHP

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.ini
0

$ ls
5
Tăng cường bảo mật php
Tăng cường bảo mật php
Tắt nhật ký lỗi PHP

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
Tăng cường bảo mật php
Tăng cường bảo mật php
Bật nhật ký lỗi trong PHP

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
Tăng cường bảo mật php
Tăng cường bảo mật php
Kiểm soát tài nguyên PHP

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.ini
2 để đả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
Tăng cường bảo mật php
Tăng cường bảo mật php
Kiểm soát quyền truy cập tệp PHP

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
Tăng cường bảo mật php
Tăng cường bảo mật php
Kiểm soát tải lên tệp PHP

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
Tăng cường bảo mật php
Tăng cường bảo mật php
Tắt các hàm PHP không mong muốn

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
Tăng cường bảo mật php
Tăng cường bảo mật php
Thay đổi thư mục bộ đệm SOAP

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
Tăng cường bảo mật php
Tăng cường bảo mật php
Giới hạn kích thước POST PHP

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”

$ ls
0
Tăng cường bảo mật php
Tăng cường bảo mật php
Lỗi hoạt động không được phép

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?

$ ls
1

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

$ ls
2

Tương tự, nếu bạn đã sử dụng thuộc tính

$ sudo rm -r 20-curl.ini
3 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

$ ls
3

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ủ

$ ls
4

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

$ ls
5

Đâ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