Chúng tôi đã cài đặt bản cập nhật mới trên hai máy chủ của mình. Kết quả lại đau đầu.
Có thể tài liệu của chúng tôi có thể giúp những người khác gặp phải vấn đề tương tự.
Cả hai máy chủ đều đang sử dụng Debian 10 và đã nhận được Bản cập nhật Plesk PHP trước đó từ ngày 14 tháng 6 năm 2022 và đã được sửa chữa tương ứng.
Chúng có cùng cấu hình, nhưng trước đây một máy chủ đã được nâng cấp từ Debian 9 lên Debian 10 ["Máy chủ 1"].
Sau khi áp dụng các bản cập nhật Plesk PHP mới từ ngày 17 tháng 6 năm 2022, điều sau đã xảy ra.
Máy chủ 1.
- chúng tôi lại gặp sự cố với các phiên bản Nextcloud đang chạy trên máy chủ [không thể đăng nhập nữa / thông báo lỗi]
- giải pháp thay thế. khởi động lại trình xử lý PHP theo cách thủ công hoặc khởi động lại máy chủ [chúng tôi đang sử dụng rất nhiều trình xử lý FPM chuyên dụng]
Máy chủ 2.
- máy chủ này gặp sự cố nghiêm trọng hơn. natri. ini không được tạo bởi bản cập nhật [trên bản cập nhật trước trên máy chủ này, natri. ini cũng không bị xóa - chúng tôi đã thực hiện thủ công theo đề xuất của nhóm Plesk]
- giải pháp thay thế. tạo tệp theo cách thủ công và khởi động lại trình xử lý PHP hoặc khởi động lại máy chủ [chúng tôi đang sử dụng nhiều trình xử lý FPM chuyên dụng]
- sự cố tiếp theo. phần mở rộng natri vẫn không được liệt kê lại trong "Công cụ & Cài đặt => Cài đặt PHP"
- giải pháp thay thế. chạy "plesk repair web -php-handlers"
nôn nao 2
Tiếng Pleskian cơ bản- Ngày 16 tháng 6 năm 2022
- #1
Tên người dùng.
TITLE
Natri mở rộng PHP đột nhiên không được đóng gói nữa
SẢN PHẨM, PHIÊN BẢN, HỆ ĐIỀU HÀNH, KIẾN TRÚC
Plesk Obsidian 18.0.44 Update #3, Debian 10.12, x86-64
MÔ TẢ SỰ CỐ
Không có bất kỳ thông báo nào trong nhật ký thay đổi, tiện ích mở rộng natri PHP đã bị xóa khỏi các bản phát hành Plesk PHP mới nhất.
Bản cập nhật PHP - ngày 14 tháng 6 năm 2022
Bản cập nhật PHP 8. 1 đến phiên bản 8. 1. 7.
Cập nhật PHP 8. 0 đến phiên bản 8. 0. 20.
Cập nhật PHP 7. 4 đến phiên bản 7. 4. 30.
BƯỚC ĐỂ TÁI TẠO
Nâng cấp Máy chủ Plesk lên phiên bản mới nhất Plesk Obsidian 18. 0. 44 Cập nhật #3.
KẾT QUẢ THỰC TẾ
Natri mở rộng PHP bị xóa khỏi các phiên bản PHP ổn định 7. 4, 8. 0 và 8. 1.
KẾT QUẢ MONG ĐỢI
Natri tiện ích mở rộng PHP không bị xóa và vẫn được gói hoặc ít nhất hiển thị cảnh báo trong nhật ký thay đổi, tại sao nó không được gói nữa.
MỌI THÔNG TIN BỔ SUNG
[KHÔNG TRẢ LỜI CÂU HỎI]
Kỳ vọng của bạn từ nhóm dịch vụ PLESK
Confirm bug
IgorG
diễn đàn phân tíchThành viên đội ngũ nhân viên
- Ngày 16 tháng 6 năm 2022
- #2
https. //hỗ trợ. cầu xin. com/hc/en-us/articles/6077118452370
nôn nao 2
Tiếng Pleskian cơ bản- Ngày 16 tháng 6 năm 2022
- #3
Có vẻ như sự cố đã được giải quyết là PPS-13031. Một bài báo KB cũng đã được xuất bản. https. //hỗ trợ. cầu xin. com/hc/en-us/articles/6077118452370
Xem chủ đề. Sự cố - Không có tiện ích mở rộng natri cho PHP 7. 4. 30 FPM
Trong trường hợp của chúng tôi, chúng tôi cũng phải khởi động lại thủ công tất cả các trình xử lý PHP để khắc phục sự cố.
nôn nao 2
Tiếng Pleskian cơ bản- Ngày 17 tháng 6 năm 2022
- #4
Bản cập nhật PHP - ngày 17 tháng 6 năm 2022
Linux
Tiện ích mở rộng của Natri hiện đã hoạt động cho PHP 7. 4, 8. 0 và 8. 1 lần nữa. [PPPM-13609]
Mật khẩu Argon2 hiện đang hoạt động trên Debian 9 “Stretch” cho PHP 7. 4, 8. 0, 8. 1. [PPPM-13611]
Nhật ký thay đổi cho Plesk Obsidian
Tìm hiểu về các thay đổi, bổ sung và cập nhật cho Plesk Obsidian trên cơ sở lặp đi lặp lại
tài liệu. cầu xin. com
We can close here.
Tài liệu đầy đủ tại đây. Sử dụng Libsodium trong Dự án PHP, hướng dẫn sử dụng tiện ích mở rộng libsodium PHP cho mã hóa hiện đại, an toàn và nhanh chóng
Cài đặtlibsodium [và, nếu bạn đang sử dụng các gói nhị phân, trên một số bản phân phối, thì cũng phải cài đặt
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];7] trước tiện ích mở rộng này
Sau đó, sử dụng trình quản lý tiện ích mở rộng PHP
$ sudo pecl install -f libsodium
Trên một số bản phân phối Linux như Debian, bạn có thể phải cài đặt PECL [
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];0], gói phát triển PHP [
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];1] và trình biên dịch [
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];2] trước khi chạy lệnh nàylibsodium-php 1. x API tương thích cho libsodium-php 2. x
Đối với các dự án sử dụng 1. x hoặc sẵn sàng sử dụng nó, lớp tương thích có sẵn
Polyfill Libsodium mang lại không gian tên
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];3ví dụ
Mã hóa một tin nhắn bằng khóa bí mật
mã hóa
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];
giải mã
$decryptedMessage = sodium_crypto_secretbox_open[$encryptedMessage, $nonce, $secretKey];
Làm thế nào nó hoạt động
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];4 là khóa bí mật. Không phải mật khẩu. Đó là dữ liệu nhị phân, không phải thứ được thiết kế để con người có thể đọc được, mà là để có một không gian khóa càng lớn càng tốt trong một độ dài nhất định. Hàm
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];5 tạo một khóa như vậy. Điều đó phải được giữ bí mật, vì nó được sử dụng để mã hóa và giải mã dữ liệu
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];6 là một giá trị duy nhất. Giống như bí mật, độ dài của nó là cố định. Nhưng nó không nhất thiết phải là bí mật và có thể được gửi cùng với tin nhắn được mã hóa. Nonce cũng không phải là không thể đoán trước. Nó chỉ phải là duy nhất cho một khóa nhất định. Với API
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];7, sử dụng
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];8 là một cách hoàn toàn tốt để tạo nonces
Thư được mã hóa lớn hơn một chút so với thư không được mã hóa, vì chúng bao gồm trình xác thực, được sử dụng bởi chức năng giải mã để kiểm tra xem nội dung có bị thay đổi không
Mã hóa một tin nhắn bằng khóa bí mật và ẩn độ dài của nó
mã hóa
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];2
giải mã
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];3
Làm thế nào nó hoạt động
Đôi khi, độ dài của một tin nhắn có thể cung cấp nhiều thông tin về bản chất của nó. Nếu một tin nhắn là một trong số "có", "không" và "có thể", mã hóa tin nhắn không giúp được gì. biết độ dài là đủ để biết tin nhắn là gì
Đệm là một kỹ thuật để giảm thiểu điều này, bằng cách làm cho độ dài bội số của một kích thước khối nhất định
Tin nhắn phải được đệm trước khi mã hóa và bỏ đệm sau khi giải mã
Mã hóa tệp bằng khóa bí mật
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];4
giải mã tập tin
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];5
Làm thế nào nó hoạt động
Có nhiều mã hơn một chút so với các ví dụ trước
Trên thực tế,
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];9 sẽ hoạt động để mã hóa dưới dạng tệp, nhưng chỉ khi tệp đó khá nhỏ. Vì chúng tôi phải cung cấp toàn bộ nội dung dưới dạng một chuỗi nên nội dung đó phải vừa với bộ nhớ
Nếu tệp lớn, chúng tôi có thể chia tệp thành các phần nhỏ và mã hóa từng phần riêng lẻ
Bằng cách đó, chúng tôi có thể mã hóa các tệp lớn tùy ý. Nhưng chúng tôi cần đảm bảo rằng các khối không thể bị xóa, cắt bớt, sao chép và sắp xếp lại. Nói cách khác, chúng tôi không có một "tin nhắn" duy nhất, mà là một luồng tin nhắn và trong quá trình giải mã, chúng tôi cần một cách để kiểm tra xem toàn bộ luồng có khớp với những gì chúng tôi đã mã hóa không
Vì vậy, chúng tôi tạo một luồng mới [
$decryptedMessage = sodium_crypto_secretbox_open[$encryptedMessage, $nonce, $secretKey];0] và đẩy một chuỗi thông báo vào đó [
$decryptedMessage = sodium_crypto_secretbox_open[$encryptedMessage, $nonce, $secretKey];1]. Mỗi tin nhắn riêng lẻ có một thẻ được gắn vào nó, theo mặc định là
$decryptedMessage = sodium_crypto_secretbox_open[$encryptedMessage, $nonce, $secretKey];2. Để quá trình giải mã biết được điểm cuối của luồng, chúng tôi gắn thẻ tin nhắn cuối cùng bằng thẻ
$decryptedMessage = sodium_crypto_secretbox_open[$encryptedMessage, $nonce, $secretKey];3
Khi chúng tôi sử dụng luồng [
$decryptedMessage = sodium_crypto_secretbox_open[$encryptedMessage, $nonce, $secretKey];4, sau đó là
$decryptedMessage = sodium_crypto_secretbox_open[$encryptedMessage, $nonce, $secretKey];5 cho mỗi thư], chúng tôi kiểm tra xem chúng có thể được giải mã đúng cách hay không và truy xuất cả các đoạn được giải mã và các thẻ được đính kèm. Nếu chúng tôi đọc đoạn cuối cùng [
$decryptedMessage = sodium_crypto_secretbox_open[$encryptedMessage, $nonce, $secretKey];3] và chúng tôi đang ở cuối tệp, chúng tôi biết rằng chúng tôi đã khôi phục hoàn toàn luồng ban đầu
Mã hóa tệp bằng khóa lấy từ mật khẩu
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];4
Đọc các tham số được lưu trữ và giải mã tệp
$secretKey = sodium_crypto_secretbox_keygen[]; $message = 'Sensitive information'; $nonce = random_bytes[SODIUM_CRYPTO_SECRETBOX_NONCEBYTES]; $encryptedMessage = sodium_crypto_secretbox[$message, $nonce, $secretKey];5
Làm thế nào nó hoạt động
Không thể sử dụng trực tiếp mật khẩu làm khóa bí mật. Mật khẩu ngắn, phải gõ được trên bàn phím và những người không sử dụng trình quản lý mật khẩu có thể nhớ chúng
Mật khẩu 8 ký tự theo cách này yếu hơn khóa 8 byte
Hàm
$decryptedMessage = sodium_crypto_secretbox_open[$encryptedMessage, $nonce, $secretKey];7 thực hiện một thao tác tính toán chuyên sâu trên mật khẩu để lấy khóa bí mật
Bằng cách đó, việc sử dụng vũ phu tất cả các mật khẩu có thể để tìm khóa bí mật được sử dụng để mã hóa dữ liệu trở thành một hoạt động tốn kém
Có thể sử dụng nhiều thuật toán để lấy khóa từ mật khẩu và đối với mỗi thuật toán, có thể chọn các tham số khác nhau. Điều quan trọng là lưu trữ tất cả những thứ này cùng với dữ liệu được mã hóa. Sử dụng cùng một thuật toán và cùng các tham số, cùng một khóa bí mật có thể được tính toán lại một cách xác định