Thông báo lỗi này đến từ một tính năng đã được thêm vào Drupal 8 để bảo vệ chống lại các cuộc tấn công tiêu đề Máy chủ HTTP . Tính năng này cũng được mô tả trong bản ghi thay đổi được tạo cho bản vá.
Về cơ bản, có thể giả mạo tiêu đề Máy chủ HTTP cho các mục đích bất chính và lừa Drupal sử dụng một tên miền khác trong một số hệ thống con (đặc biệt là tạo liên kết). Nói cách khác, tiêu đề Máy chủ HTTP cần được xem là đầu vào của người dùng và không đáng tin cậy.
Để chống lại điều này, một cài đặt mới $settings['trusted_host_patterns']
, đã được thêm vào Drupal 8 để định cấu hình danh sách tên máy chủ "đáng tin cậy" mà trang web có thể chạy từ đó. Cài đặt cần phải là một mảng các mẫu biểu thức chính quy, không có dấu phân cách, đại diện cho tên máy chủ bạn muốn cho phép chạy từ đó.
Ví dụ: nếu bạn đang chạy trang web của mình từ một tên máy chủ duy nhất "www.example.com", thì bạn nên thêm phần này vào cài đặt của mình (thường được tìm thấy tại ./sites/default/settings.php
):
$settings['trusted_host_patterns'] = array(
'^www\.example\.com$',
);
Lưu ý ^
, \.
và $
. Đây là cú pháp PCRE . Điều này chỉ có nghĩa là bạn muốn khớp chính xác "www.example.com", không có gì thêm ở đầu và cuối, và các dấu chấm phải được coi là dấu chấm và không phải là ký tự đại diện.
Nếu bạn đang chạy từ "example.com", thì chỉ cần sử dụng:
$settings['trusted_host_patterns'] = array(
'^example\.com$',
);
Nếu bạn cần chạy một trang web có nhiều tên miền và / hoặc tên miền phụ và không thực hiện chuyển hướng URL chuẩn, thì cài đặt của bạn sẽ trông giống như thế này:
$settings['trusted_host_patterns'] = array(
'^example\.com$',
'^.+\.example\.com$',
'^example\.org',
'^.+\.example\.org',
);
Điều này cho phép trang web chạy khỏi tất cả các biến thể của example.com và example.org, với tất cả các tên miền phụ được bao gồm.
Khi bạn điều chỉnh $settings['trusted_host_patterns']
giá trị phù hợp, bạn sẽ có thể duyệt lại trang web của mình.
Bạn cũng có thể kiểm tra trạng thái cài đặt máy chủ đáng tin cậy của mình từ trang báo cáo trạng thái, tại quản trị / báo cáo / trạng thái
Nếu bạn loại bỏ hoàn toàn cài đặt, cơ chế lưu trữ đáng tin cậy sẽ không được sử dụng và bạn sẽ thấy lỗi trên trang báo cáo trạng thái. Ngoài ra, trang web của bạn cũng có thể bị tấn công tiêu đề Máy chủ HTTP dễ bị tấn công.
Nếu bạn có cài đặt này được định cấu hình và đang thấy thông báo này, thì có lẽ điều đó có nghĩa là bạn đã nhầm lẫn cú pháp biểu thức chính quy. Trong trường hợp này, lấy ví dụ đầu tiên và sao chép / dán vào cài đặt của bạn, sau đó chỉnh sửa nó để phản ánh tên máy chủ mà trang web của bạn chạy từ đó.