เรามีแอปพลิเคชั่น PHP ที่เชื่อมต่อกับเซิร์ฟเวอร์ MySQL และเราต้องการความปลอดภัยในการเชื่อมต่อระหว่างเว็บ & แอปพลิเคชันเซิร์ฟเวอร์และฐานข้อมูล
ในช่วงเวลาเร่งด่วนเว็บเซิร์ฟเวอร์จะทำการเชื่อมต่อพร้อมกันหลายร้อยไปยังฐานข้อมูลและทำการอ่านและเขียนขนาดเล็กจำนวนมาก ฉันรู้ว่านี่ไม่เหมาะสมและกำลังพยายามลดจำนวนการเชื่อมต่อฐานข้อมูลควบคู่ไปกับสิ่งนี้
เราไม่มีการเชื่อมต่อกับฐานข้อมูลที่เปิดอยู่ในปัจจุบันและแม้ว่าเราจะตั้งใจในอนาคตฉันต้องการที่จะใช้สิ่งนี้อย่างเป็นอิสระ
ฮาร์ดแวร์ฉลาด - เซิร์ฟเวอร์ MySQL ค่อนข้างหนา (16 คอร์) เหมือนกับเว็บเซิร์ฟเวอร์ พวกเขากำลังทุ่มเทเซิร์ฟเวอร์
คำถามของฉันจะล้อมรอบวิธีที่มีประสิทธิภาพที่สุดในการรักษาความปลอดภัยและเข้ารหัสการเชื่อมต่อไปยังเซิร์ฟเวอร์ฐานข้อมูล
งานวิจัยของฉันได้แนะนำว่าค่าใช้จ่ายหลักของประสิทธิภาพคือการตั้งค่าการเชื่อมต่อ SSL - เมื่อเชื่อมต่อ SSL แล้วจะมีโทษประสิทธิภาพเล็กน้อย และนี่คือสิ่งที่ฉันมีเกี่ยวกับการรักษาความปลอดภัยการเชื่อมต่อแต่ละวิธี:
- ใบรับรอง SSL SSL - ทำงานเหมือนกับ SSL ปกติ สามารถใช้ใบรับรองไคลเอ็นต์เพื่อป้องกันการเชื่อมต่อที่ไม่ได้รับอนุญาต ไม่มีการเชื่อมต่อถาวรกับการตั้งค่าที่มีอยู่ของเรา ยังคงต้องมี MySQL ฟังบนพอร์ตที่เปิดในไฟร์วอลล์
- stunnel ตั้งค่าพอร์ตไปยังพอร์ต ssl tunnel ไม่ต้องกำหนดค่า MySQL ใหม่ สามารถปิดพอร์ตการฟัง MySQL ปกติเพื่อป้องกันการพยายามเชื่อมต่อ MySQL ที่เป็นอันตราย ไม่รองรับการเชื่อมต่อแบบต่อเนื่อง ผลการดำเนินงานที่ไม่รู้จัก
- SSH Tunneling สร้างอุโมงค์ SSH ระหว่างไคลเอนต์และเซิร์ฟเวอร์ ไม่ต้องกำหนดค่า MySQL ใหม่ สามารถปิดพอร์ตการฟัง MySQL ปกติเพื่อป้องกันการพยายามเชื่อมต่อ MySQL ที่เป็นอันตราย รองรับการเชื่อมต่อแบบถาวร แต่บางครั้งก็เลื่อนออก ผลการดำเนินงานที่ไม่รู้จัก
นี่คือเท่าที่ฉันได้รับ ฉันตระหนักถึงข้อ จำกัด ของการวัดประสิทธิภาพ - จากประสบการณ์การใช้งานมันเป็นการยากที่จะจำลองการรับส่งข้อมูลในโลกแห่งความเป็นจริง ฉันหวังว่าบางคนมีคำแนะนำตามประสบการณ์ของพวกเขาในการรักษาความปลอดภัย MySQL?
ขอบคุณ
openssl speed
และเลือกรหัสที่เหมาะกับความต้องการของคุณสำหรับการป้องกันและลดประสิทธิภาพ