ฉันต้องการทราบว่าผู้คนพิจารณาแนวทางปฏิบัติที่ดีที่สุดในการรักษาความปลอดภัยส่วนผู้ดูแลระบบของเว็บไซต์โดยเฉพาะจากมุมมองการตรวจสอบสิทธิ์ / การเข้าถึง
แน่นอนว่ามีสิ่งที่ชัดเจนเช่นการใช้ SSL และการบันทึกการเข้าถึงทั้งหมด แต่ฉันสงสัยว่าขั้นตอนพื้นฐานเหล่านี้อยู่ที่ใดที่ผู้คนพิจารณาว่าจะตั้งค่าแถบ
ตัวอย่างเช่น:
- คุณอาศัยกลไกการตรวจสอบสิทธิ์แบบเดียวกับที่คุณใช้สำหรับผู้ใช้ทั่วไปหรือไม่? ถ้าไม่ได้อะไร?
- คุณเรียกใช้ส่วนผู้ดูแลระบบใน "โดเมนแอปพลิเคชัน" เดียวกันหรือไม่
- คุณต้องทำขั้นตอนใดบ้างเพื่อทำให้ส่วนผู้ดูแลระบบไม่ถูกค้นพบ (หรือคุณปฏิเสธสิ่งที่ 'ปิดบัง' ทั้งหมด)
จนถึงตอนนี้คำแนะนำจากผู้ตอบ ได้แก่ :
- แนะนำการหยุดชั่วคราวฝั่งเซิร์ฟเวอร์เทียมในการตรวจสอบรหัสผ่านของผู้ดูแลระบบแต่ละครั้งเพื่อป้องกันการโจมตีแบบดุร้าย[Developer Art]
- ใช้หน้าการเข้าสู่ระบบแยกกันสำหรับผู้ใช้และผู้ดูแลระบบโดยใช้ตาราง DB เดียวกัน (เพื่อหยุด XSRF และการขโมยเซสชันที่ให้สิทธิ์เข้าถึงพื้นที่ผู้ดูแลระบบ) [Thief Master]
- ลองเพิ่มการตรวจสอบสิทธิ์แบบเนทีฟของเว็บเซิร์ฟเวอร์ในพื้นที่ผู้ดูแลระบบด้วย (เช่นผ่าน. htaccess) [Thief Master]
- พิจารณาบล็อก IP ของผู้ใช้หลังจากพยายามเข้าสู่ระบบของผู้ดูแลระบบที่ล้มเหลวหลายครั้ง[Thief Master]
- เพิ่ม captcha หลังจากพยายามเข้าสู่ระบบของผู้ดูแลระบบที่ล้มเหลว[Thief Master]
- ให้กลไกที่แข็งแกร่งเท่าเทียมกัน (โดยใช้เทคนิคข้างต้น) สำหรับผู้ใช้และผู้ดูแลระบบ (เช่นอย่าปฏิบัติต่อผู้ดูแลระบบเป็นพิเศษ) [Lo'oris]
- พิจารณาการรับรองความถูกต้องระดับที่สอง (เช่นใบรับรองไคลเอ็นต์สมาร์ทการ์ดพื้นที่การ์ด ฯลฯ ) [JoeGeeky]
- อนุญาตให้เข้าถึงจาก IP / โดเมนที่เชื่อถือได้เท่านั้นเพิ่มการตรวจสอบไปยังไปป์ไลน์ HTTP พื้นฐาน (ผ่านเช่น HttpModules) ถ้าเป็นไปได้ [JoeGeeky]
- [ASP.NET] ล็อก IPrincipal & Principal (ทำให้ไม่เปลี่ยนรูปและไม่สามารถระบุได้) [JoeGeeky]
- การยกระดับสิทธิ์ของสหพันธรัฐ - เช่นส่งอีเมลถึงผู้ดูแลระบบรายอื่นเมื่อมีการอัปเกรดสิทธิ์ของผู้ดูแลระบบ [JoeGeeky]
- พิจารณาสิทธิ์โดยละเอียดสำหรับผู้ดูแลระบบ - เช่นแทนที่จะเป็นสิทธิ์ตามบทบาทให้กำหนดสิทธิ์สำหรับการกระทำที่บ่งชี้ต่อผู้ดูแลระบบ[JoeGeeky]
- จำกัด การสร้างผู้ดูแลระบบ - เช่นผู้ดูแลระบบไม่สามารถเปลี่ยนแปลงหรือสร้างบัญชีผู้ดูแลระบบอื่นได้ ใช้ไคลเอนต์ 'superadmin' ที่ล็อกลงสำหรับสิ่งนี้ [JoeGeeky]
- พิจารณาใบรับรอง SSL ฝั่งไคลเอ็นต์หรือคีย์ฟอบประเภท RSA (โทเค็นอิเล็กทรอนิกส์) [Daniel Papasian]
- หากใช้คุกกี้สำหรับการตรวจสอบสิทธิ์ให้ใช้คุกกี้แยกกันสำหรับผู้ดูแลระบบและเพจปกติโดยวางส่วนผู้ดูแลระบบไว้ในโดเมนอื่น [แดเนียลปาปาเซียน]
- หากเป็นไปได้ให้พิจารณาเก็บไซต์ผู้ดูแลระบบไว้ในเครือข่ายย่อยส่วนตัวนอกอินเทอร์เน็ตสาธารณะ [John Hartsock]
- ออกตั๋วการตรวจสอบสิทธิ์ / เซสชันอีกครั้งเมื่อย้ายไปมาระหว่างบริบทการใช้งานของผู้ดูแลระบบ / ปกติของเว็บไซต์[Richard JP Le Guen]