ประสบการณ์ความปลอดภัยของเซิร์ฟเวอร์: ป้องกันการเข้าสู่ระบบที่ผิดกฎหมาย
ผู้เขียน:Eve Cole
เวลาอัปเดต:2009-07-24 15:42:20
1. กำหนดค่าความปลอดภัยของฐานข้อมูล เช่น บัญชี/รหัสผ่าน/สิทธิ์ที่โปรแกรมของคุณใช้เพื่อเชื่อมต่อกับฐานข้อมูล หากคุณกำลังเรียกดูข่าวสาร ให้ใช้สิทธิ์แบบอ่านอย่างเดียว คุณสามารถใช้บัญชี/สิทธิ์ที่แตกต่างกันสำหรับโมดูลที่แตกต่างกันได้ นอกจากนี้ กระบวนการจัดเก็บใดของฐานข้อมูลที่สามารถเรียกได้นั้น จะต้องได้รับการกำหนดค่าอย่างเคร่งครัด และขั้นตอนที่ไม่ได้ใช้ทั้งหมดจะถูกปิดใช้งาน (โดยเฉพาะ cmd) เพื่อป้องกันการใช้ขั้นตอนการจัดเก็บของฐานข้อมูลเพื่อทำการเรียกระบบหลังจากการฉีด
2. เมื่อได้รับพารามิเตอร์ที่ลูกค้าส่งมา ให้ทำการกรองอย่างเข้มงวด รวมถึงความยาวของพารามิเตอร์ ประเภทพารามิเตอร์ ฯลฯ
3. ปกป้องพื้นหลังของผู้ดูแลระบบอย่างเคร่งครัด หากเป็นไปได้ ควรตั้งค่าให้อนุญาตการเข้าถึง IP ที่เฉพาะเจาะจงเท่านั้น (เช่น อนุญาตการเข้าถึงเฉพาะส่วนเครือข่ายของผู้ดูแลระบบ) ทั้งนี้ขึ้นอยู่กับสถานการณ์จริง
4. กำหนดค่าระบบปฏิบัติการอย่างปลอดภัยเพื่อป้องกันไม่ให้ฟังก์ชันของระบบถูกเรียกหลังจากการฉีด เช่น
cmd.exe/tftp.exe/ftp.exe/net.exe
ไฟล์ทั้งหมดเหล่านี้จะถูกถ่ายโอนไปยังไดเร็กทอรีอื่นและมีการมอบหมายสิทธิ์ที่เข้มงวดให้กับไดเร็กทอรี
5. ตั้งค่าการควบคุมการเข้าถึงเครือข่าย
6. หากเป็นไปได้ ให้กำหนดค่าการกรองเนื้อหาสำหรับ HTTP เพื่อกรองไวรัส สคริปต์ที่เป็นอันตราย ฯลฯ
7. หากจำเป็น คุณสามารถพิจารณาเลือก HTTPS ซึ่งสามารถป้องกันการสแกนเครื่องมือการฉีดจำนวนมากได้ เมื่อฉันพัฒนาเครื่องมือตรวจจับการฉีดด้วยตัวเอง ฉันถือว่ารองรับ HTTPS แต่ยังไม่ได้นำมาใช้
ฉันเชื่อว่าคุณสังเกตเห็นด้วยว่าโดยทั่วไปแล้วโปรแกรมจะพิจารณาถึงปัญหาต่างๆ เช่น สิทธิ์และการกรองพารามิเตอร์เป็นหลัก สิทธิ์ส่วนใหญ่จะรวมถึงสิทธิ์ในการเรียกดู IIS และสิทธิ์ในการเรียกฐานข้อมูล นอกจากนี้ จะต้องพิจารณาการกำหนดค่าความปลอดภัยของฐานข้อมูลและระบบปฏิบัติการด้วย นอกจากนี้ฉันสงสัยว่าคุณจะใช้ส่วนประกอบที่พัฒนาโดยผู้อื่นในระหว่างกระบวนการพัฒนาหรือไม่ เช่น การอัปโหลดรูปภาพ คุณได้ศึกษาความปลอดภัยของส่วนประกอบดังกล่าวหรือไม่ หรือในระหว่างกระบวนการพัฒนาคนส่วนใหญ่จะใช้ปัญหาด้านความปลอดภัยของ รหัสที่ให้ไว้บนอินเทอร์เน็ตและในหนังสือ เช่น การยืนยันการเข้าสู่ระบบของผู้ใช้ ฯลฯ จะต้องได้รับการศึกษาด้วย