Score:2

ฉันต้องการการตั้งค่าโฮสต์ที่เชื่อถือได้หรือไม่

ธง cn

ฉันต้องการการตั้งค่าโฮสต์ที่เชื่อถือได้สำหรับไซต์ Drupal 7 หรือไม่ ถ้าเป็นเช่นนั้นฉันจะกำหนดค่าได้อย่างไร

ฉันสังเกตเห็นว่า Backdrop CMS มีอยู่ในไฟล์การตั้งค่า

Score:4
ธง us

Drupal 7 จำกัดความยาวของชื่อโฮสต์ไว้ที่ 1,000 ไบต์เท่านั้นเพื่อป้องกันการโจมตีแบบ DoS และไม่ยอมรับชื่อโฮสต์ที่มีเครื่องหมายทับ แต่ไม่จำกัดชื่อโฮสต์ที่อนุญาตตามค่าที่ตั้งค่าไว้ใน การตั้งค่า.php ไฟล์เหมือนที่ Drupal 8 และ Drupal 9 ทำ

รหัสการตรวจสอบค่าของ HTTP_HOST ส่วนหัวมีอยู่ใน drupal_valid_http_host().

// จำกัดความยาวของชื่อโฮสต์ไว้ที่ 1,000 ไบต์เพื่อป้องกันการโจมตี DoS ด้วย
// ชื่อโฮสต์ยาว
ส่งคืน strlen($host) <= 1,000 && substr_count($host, '.') <= 100 && substr_count($host, ':') <= 100 && preg_match('/^\[?(?:[a -zA-Z0-9-:\]_]+\.?)+$/', $host);

ฟังก์ชันนี้เรียกโดย drupal_environment_initialize().

ถ้า (!isset($_SERVER['HTTP_REFERER'])) {
  $_SERVER['HTTP_REFERER'] = '';
}
ถ้า (!isset($_SERVER['SERVER_PROTOCOL']) || $_SERVER['SERVER_PROTOCOL'] != 'HTTP/1.0' && $_SERVER['SERVER_PROTOCOL'] != 'HTTP/1.1') {
  $_SERVER['SERVER_PROTOCOL'] = 'HTTP/1.0';
}
ถ้า (isset($_SERVER['HTTP_HOST'])) {
  // เนื่องจาก HTTP_HOST เป็นอินพุตของผู้ใช้ ตรวจสอบให้แน่ใจว่ามีเพียงอักขระที่อนุญาตเท่านั้น
  // ในชื่อโฮสต์ ดู RFC 952 (และ RFC 2181)
  // $_SERVER['HTTP_HOST'] เป็นตัวพิมพ์เล็กที่นี่ตามข้อกำหนด
  $_SERVER['HTTP_HOST'] = strtolower($_SERVER['HTTP_HOST']);
  ถ้า (!drupal_valid_http_host($_SERVER['HTTP_HOST'])) {
    // HTTP_HOST ไม่ถูกต้อง เช่น หากมีเครื่องหมายทับก็อาจเป็นการโจมตี
    header($_SERVER['SERVER_PROTOCOL'] . ' 400 คำขอไม่ถูกต้อง');
    ทางออก;
  }
}
อื่น {
  // ไคลเอนต์ pre-HTTP/1.1 บางตัวจะไม่ส่งส่วนหัวของโฮสต์ ตรวจสอบให้แน่ใจว่ากุญแจอยู่
  // กำหนดสำหรับการปฏิบัติตาม E_ALL
  $_SERVER['HTTP_HOST'] = '';
}

มีแพตช์ที่ควรเพิ่มใน Drupal 7 ซึ่งเป็นรหัสเดียวกับที่ใช้โดย Drupal 8 ใน ส่วนหัว HTTP_HOST ไม่สามารถเชื่อถือได้. ในขณะนี้ การพัฒนา Drupal 7 ชะลอตัวลง โดยเฉพาะอย่างยิ่งเมื่อ Drupal 8 และ Drupal 9 ได้รับการพัฒนาในเวลาเดียวกัน
เนื่องจากสิ่งนี้ถือเป็นการปรับปรุงความปลอดภัย (ซึ่งเห็นได้ชัดว่ามีโอกาสน้อยที่จะถูกพิจารณาว่าเป็นปัญหาด้านความปลอดภัย หรือปัญหาจะไม่ถูกกล่าวถึงในที่สาธารณะ) คุณจึงสามารถใช้แพตช์ที่มีให้ในปัญหานั้นได้ (อันล่าสุดคือที่ ขณะที่ฉันโพสต์คำตอบนี้ https://www.drupal.org/files/issues/2021-02-04/http_host_header_cannot_bet_trusted-2221699-151.patch) และเริ่มใช้งาน $conf['trusted_host_patterns'].

Score:1
ธง cn

รูปแบบโฮสต์ที่เชื่อถือได้คือ เปิดตัวใน Drupal 8. ไม่มีอะไรให้กำหนดค่าสำหรับ Drupal 7

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา