เหตุใดการยืนยันตัวตน Basic ของ Squid ยังยอมรับรหัสผ่านเก่า
ทำความเข้าใจแคชข้อมูลรับรอง Basic ใน Squid 6.13 ก่อนสรุปว่าการแก้ไฟล์รหัสผ่านจะยกเลิกการเข้าถึงของทุกคำขอทันที
การเปลี่ยนไฟล์รหัสผ่านของ Squid ไม่ได้ทำให้คำขอถัดไปทุกคำขอเรียก helper ใหม่เสมอไป ในการยืนยันตัวตนแบบ Basic Squid อาจแคชคู่ชื่อผู้ใช้และรหัสผ่านที่ตรวจสอบผ่านแล้ว
การตั้งค่า Squid 6.13 ที่ควบคุมระยะเวลาที่ถือว่าการตรวจสอบนี้ใช้ได้คือ credentialsttl ตัวอย่างเช่น:
auth_param basic credentialsttl 5 minutes
นี่เป็นค่าตัวอย่างของนโยบาย ไม่ใช่คำแนะนำทั่วไป เลือกตามความล่าช้าในการยกเลิกสิทธิ์ที่ยอมรับได้และภาระที่แบ็กเอนด์ยืนยันตัวตนรองรับ
แยกการตรวจสอบสามอย่าง
ก่อนอื่นยืนยันว่าแก้ไขไฟล์ที่ helper ซึ่งทำงานอยู่ใช้อยู่ การแก้ไฟล์ที่ไม่ได้ใช้ไม่มีผล จากนั้นตรวจว่า helper อ่านไฟล์และตรวจข้อมูลบัญชีใหม่ได้ สุดท้ายทดสอบคำขอพร็อกซีใหม่ผ่านอินสแตนซ์ที่ทำงานอยู่ ซึ่งแคชข้อมูลรับรองและกฎการเข้าถึงก็มีผลเช่นกัน
ทดสอบ helper และพร็อกซีที่ทำงานอยู่แยกกัน helper แสดงว่าแบ็กเอนด์ยอมรับอะไรในปัจจุบัน แต่ Squid อาจยังใช้ผลตรวจสอบจากแคชซ้ำ เมื่อต้องเปลี่ยนข้อมูล ให้ตรวจทั้งข้อมูลใหม่ที่ใช้ได้และข้อมูลเก่าที่ถูกปฏิเสธหลังช่วงเวลาตรวจสอบที่เกี่ยวข้อง
ใช้บัญชีทดสอบเฉพาะเมื่อตรวจสอบพฤติกรรมนี้ รักษาคำขอ แหล่งไคลเอนต์ และเป้าหมายให้เหมือนเดิม และอย่าใส่รหัสผ่านจริงในผลลัพธ์คำสั่งที่แชร์
วางแผนการยกเลิกสิทธิ์แทนการพึ่งการแก้ไฟล์
อายุการตรวจสอบที่สั้นลงเพิ่มงานของแบ็กเอนด์ ก่อนลดในบริการที่มีภาระสูง ให้พิจารณาความจุของ helper และตรวจพฤติกรรมกับแบ็กเอนด์จริง อย่าสันนิษฐานว่าการโหลดการตั้งค่าใหม่ล้างสถานะการยืนยันตัวตนที่เกี่ยวข้องทั้งหมด เว้นแต่ยืนยันแล้วสำหรับเวอร์ชันและการตั้งค่าของคุณ
หากต้องยกเลิกการเข้าถึงเร่งด่วน การปฏิเสธการเข้าถึงบัญชีหรือแหล่งที่มาอย่างชัดเจนอาจเป็นขอบเขตแยกต่างหาก ให้ทดสอบการปฏิเสธนั้นจากเส้นทางที่ได้รับผลกระทบ แทนการพึ่งการลบจากไฟล์รหัสผ่านอย่างเดียว
การตั้งค่านี้อธิบายแคชการตรวจสอบ Basic รูปแบบการยืนยันตัวตนที่ยึดการเชื่อมต่อมีสถานะเพิ่มเติม จึงไม่ควรให้โมเดลยกเลิกสิทธิ์เดียวกันเพียงเพราะเทียบเคียง