บทความนี้ส่วนใหญ่ศึกษาคำถามที่พบบ่อยในคำถามสัมภาษณ์ Java และปัญหาการตัดสินและป้องกันการฉีด SQL รายละเอียดมีดังนี้
การฉีด SQL เป็นวิธีการโจมตีที่ใช้กันมากที่สุดสำหรับแฮ็กเกอร์ในปัจจุบัน หลักการของมันคือการใช้ฐานข้อมูลเพื่อแยกวิเคราะห์ตัวระบุพิเศษเพื่อบังคับให้ส่งผ่านพวกเขาจากหน้าไปยังพื้นหลัง เปลี่ยนโครงสร้างคำสั่ง SQL บรรลุการอนุญาตเพิ่มเติมสร้างผู้ใช้ระดับสูงการแก้ไขข้อมูลผู้ใช้และการดำเนินการอื่น ๆ
ผ่านหลักการของการฉีด SQL เรารู้ว่าการตัดสินข้อมูลว่าการฉีด SQL สามารถส่งผ่านหน้าเว็บพื้นหลังไม่ควรเชื่อในข้อมูลใด ๆ ที่ส่งผ่านจากพื้นหลังโดยเฉพาะพารามิเตอร์จำนวนเต็มพิเศษและพารามิเตอร์อักขระพิเศษ!
1. ตรวจสอบชนิดข้อมูลตัวแปรและรูปแบบ
ตราบใดที่มันเป็นตัวแปรในรูปแบบคงที่ก่อนที่คำสั่ง SQL จะถูกดำเนินการควรตรวจสอบอย่างเคร่งครัดในรูปแบบคงที่เพื่อให้แน่ใจว่าตัวแปรเป็นรูปแบบที่เราคาดหวัง!
2. ตัวกรองสัญลักษณ์พิเศษ
สำหรับตัวแปรที่ไม่สามารถกำหนดได้ในรูปแบบคงที่ต้องใช้สัญลักษณ์พิเศษเพื่อประมวลผลหรือถ่ายโอน มีความคลุมเครือใน SQL
เมื่อเราอัปโหลดรูปภาพ
Enctype =/” multipart/form-data/” enctype =” multipart/form-data”
หากไม่มี "/", enctype = "multipart/form-data" ในรูปแบบหมายถึงการตั้งค่าการเข้ารหัส MIME ของแบบฟอร์ม โดยค่าเริ่มต้นรูปแบบการเข้ารหัสนี้คือแอปพลิเคชัน/x-www-form-urlencoded ซึ่งไม่สามารถใช้สำหรับการอัปโหลดไฟล์ โดยการใช้ข้อมูลไฟล์แบบหลายส่วน/ฟอร์มสามารถส่งผ่านอย่างเต็มที่และดำเนินการต่อไปนี้
3. ผูกตัวแปรและใช้คำสั่ง precompiled
ในความเป็นจริงการใช้คำสั่ง precompiled เพื่อผูกตัวแปรเป็นวิธีที่ดีที่สุดในการป้องกันการฉีด SQL และความหมายของการใช้คำสั่ง SQL ที่รวบรวมไว้ล่วงหน้าจะไม่เปลี่ยนแปลง ในคำสั่ง SQL ให้ใช้เครื่องหมายคำถามสำหรับตัวแปรหรือไม่? หมายความว่าไม่ว่าแฮ็กเกอร์จะมีความสามารถเพียงใดเขาไม่สามารถเปลี่ยนรูปแบบของคำสั่ง SQL ได้และป้องกันการเกิดการโจมตีของ SQL
4. ความปลอดภัยการเข้ารหัสข้อมูลฐานข้อมูล
บางครั้งเมื่อข้อมูลฐานข้อมูลรั่วไหลออกมาเราควรเข้ารหัสรหัสผ่านฐานข้อมูลและข้อมูลอื่น ๆ (MD5 ฯลฯ ) เพื่อให้ข้อมูลรั่วไหลออกมาและสามารถควบคุมการสูญเสียภายในช่วงที่กำหนด
1. อย่าเปิดสภาพแวดล้อมการผลิตเพื่อสรุปการแสดงข้อผิดพลาดของเว็บเซิร์ฟเวอร์
2. อย่าเชื่อในตัวแปรอินพุตจากด้านผู้ใช้ ตัวแปรที่มีรูปแบบคงที่จะต้องตรวจสอบอย่างเคร่งครัด ตัวแปรที่ไม่มีรูปแบบคงที่จำเป็นต้องดำเนินการกรองที่จำเป็นและหลบหนีอักขระพิเศษเช่นคำพูด
3. ใช้คำสั่ง SQL ที่คอมไพล์ precompiled ที่ผูกตัวแปร
4. ทำงานได้ดีในการจัดการสิทธิ์บัญชีฐานข้อมูล
5. เข้ารหัสอย่างเคร่งครัดและประมวลผลข้อมูลที่เป็นความลับของผู้ใช้
โปรแกรมที่ดีต้องให้ความสนใจกับความปลอดภัยไม่เช่นนั้นเหมาะสำหรับการฝึกฝนเท่านั้น
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับการวิเคราะห์คำถามสัมภาษณ์ Java และป้องกันการฉีด SQL ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!