AJAX ความปลอดภัย
Asynchronous Javascript และ XML (AJAX) เป็นหนึ่งในเทคนิคล่าสุดที่ใช้ในการพัฒนาเว็บแอปพลิเคชันตามลำดับเพื่อมอบประสบการณ์การใช้งานที่หลากหลายแก่ผู้ใช้ เนื่องจากเป็นเทคโนโลยีใหม่จึงมีปัญหาด้านความปลอดภัยมากมายที่ยังไม่เสร็จสมบูรณ์และด้านล่างนี้คือปัญหาด้านความปลอดภัยบางประการใน AJAX
พื้นผิวการโจมตีมีมากขึ้นเนื่องจากมีปัจจัยการผลิตที่ต้องรักษาความปลอดภัยมากขึ้น
นอกจากนี้ยังแสดงฟังก์ชันภายในของแอปพลิเคชัน
ความล้มเหลวในการปกป้องข้อมูลการตรวจสอบและเซสชัน
มีเส้นแบ่งที่แคบมากระหว่างฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ดังนั้นจึงมีความเป็นไปได้ที่จะเกิดข้อผิดพลาดด้านความปลอดภัย
ตัวอย่าง
นี่คือตัวอย่างสำหรับ AJAX Security -
ในปี 2549 บริการอีเมล yahoo ที่ติดไวรัสโดยใช้ XSS และ AJAX ซึ่งใช้ประโยชน์จากช่องโหว่ในการจัดการเหตุการณ์ onload ของ Yahoo Mail เมื่อเปิดอีเมลที่ติดไวรัสเวิร์มจะเรียกใช้ JavaScript ส่งสำเนาไปยังผู้ติดต่อ Yahoo ทั้งหมดของผู้ใช้ที่ติดไวรัส
Hands ON
Step 1- เราจำเป็นต้องพยายามเพิ่มรางวัลให้กับชุดรางวัลที่คุณอนุญาตโดยใช้การฉีด XML ด้านล่างนี้คือภาพรวมของสถานการณ์
Step 2- ตรวจสอบให้แน่ใจว่าเราสกัดกั้นทั้งคำขอและการตอบกลับโดยใช้ Burp Suite การตั้งค่าเหมือนกับที่แสดงด้านล่าง
Step 3- ป้อนหมายเลขบัญชีตามที่ระบุในสถานการณ์ เราจะได้รับรายชื่อรางวัลทั้งหมดที่เรามีสิทธิ์ได้รับ เรามีสิทธิ์ได้รับ 3 รางวัลจาก 5 รางวัล
Step 4- ตอนนี้ให้เราคลิก 'ส่ง' และดูสิ่งที่เราได้รับใน XML การตอบกลับ ดังที่แสดงไว้ด้านล่างรางวัลสามรายการที่เรามีสิทธิ์จะถูกส่งให้เราเป็น XML
Step 5 - ตอนนี้ให้เราแก้ไข XML เหล่านั้นและเพิ่มรางวัลอีกสองรางวัลด้วย
Step 6- ตอนนี้รางวัลทั้งหมดจะแสดงให้ผู้ใช้เลือก เลือกรายการที่เราเพิ่มแล้วคลิก "ส่ง"
Step 7 - ข้อความต่อไปนี้ปรากฏขึ้นว่า "* ยินดีด้วยคุณเรียนจบบทเรียนนี้สำเร็จแล้ว"
กลไกการป้องกัน
ฝั่งไคลเอ็นต์ -
- ใช้ .innerText แทน .innerHtml
- อย่าใช้ eval
- อย่าพึ่งพาตรรกะของไคลเอ็นต์เพื่อความปลอดภัย
- หลีกเลี่ยงการเขียนรหัสซีเรียลไลเซชั่น
- หลีกเลี่ยงการสร้าง XML แบบไดนามิก
- อย่าส่งความลับไปยังลูกค้า
- อย่าทำการเข้ารหัสในรหัสฝั่งไคลเอ็นต์
- อย่าดำเนินการด้านความปลอดภัยที่ส่งผลกระทบต่อตรรกะในฝั่งไคลเอ็นต์
ฝั่งเซิร์ฟเวอร์ -
- ใช้การป้องกัน CSRF
- หลีกเลี่ยงการเขียนรหัสซีเรียลไลเซชั่น
- บริการสามารถเรียกโดยผู้ใช้โดยตรง
- หลีกเลี่ยงการสร้าง XML ด้วยมือใช้กรอบ
- หลีกเลี่ยงการสร้าง JSON ด้วยมือใช้กรอบงานที่มีอยู่