การป้องกัน CSRF ในแอ็กชันแบบฟอร์ม
ทำความเข้าใจว่า SvelteKit ป้องกันการปลอมแปลงคำขอข้ามไซต์ในแอ็กชันแบบฟอร์มอย่างไร
การป้องกัน CSRF ในแอ็กชันแบบฟอร์ม เป็นบทเรียน Sveltejs Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Sveltejs Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Sveltejs Academy มีบทเรียนทั้งหมด 4 บทเรียน
CSRF คืออะไร
การปลอมแปลงคำขอข้ามไซต์หลอกให้เบราว์เซอร์ของผู้ใช้ที่ยืนยันตัวตนแล้วส่งคำขอปลอมไปยังไซต์ของคุณ
ค่าเริ่มต้นของ SvelteKit
แอ็กชันแบบฟอร์มของ SvelteKit จะบล็อกคำขอจากแหล่งที่มาข้ามโดเมนตามค่าเริ่มต้น ซึ่งช่วยลดความเสี่ยงจาก CSRF
วิธีการทำงาน
SvelteKit จะตรวจสอบส่วนหัว Origin กับโฮสต์สำหรับเมธอดที่เปลี่ยนแปลงสถานะ
คุกกี้แบบ SameSite
กำหนด sameSite: "lax" ให้กับคุกกี้เพื่อเพิ่มการป้องกันอีกชั้น
ปิดใช้งานอย่างระมัดระวัง
คุณสามารถปิดการป้องกัน CSRF ได้ผ่าน csrf: { checkOrigin: false } ใน svelte.config.js แต่แทบไม่เคยแนะนำให้ทำเช่นนั้น
การส่งฟอร์มจากภายนอก
หากจำเป็นต้องยอมรับการส่งข้อมูลข้ามต้นทาง ให้ใช้โทเค็น API แทน
ทดสอบ CSRF
ลองส่งข้อมูลไปยังฟอร์มจากต้นทางที่ไม่เกี่ยวข้องกัน เช่น JSFiddle — SvelteKit ควรปฏิเสธคำขอดังกล่าว
เมธอด GET
คำขอ GET จะไม่ถูกป้องกันด้วย CSRF โดยค่าเริ่มต้น ดังนั้นอย่าใช้ GET เพื่อเปลี่ยนแปลงสถานะ
การป้องกันหลายชั้น
ใช้คุกกี้แบบ SameSite การตรวจสอบ Origin และโทเค็นยืนยันตัวตนร่วมกันเพื่อสร้างความปลอดภัยหลายชั้น
ข้อผิดพลาดที่พบบ่อย
การเก็บ JWT ไว้ใน localStorage แล้วอ่านผ่าน fetch จะทำให้การป้องกันด้วย SameSite ใช้ไม่ได้ผล
บันทึกการตรวจสอบ
บันทึกความพยายามข้ามต้นทางที่น่าสงสัยเพื่อช่วยตรวจจับการโจมตีได้ตั้งแต่เนิ่น ๆ
ตรวจสอบอย่างรวดเร็ว
โดยค่าเริ่มต้น SvelteKit ตรวจสอบอะไรเพื่อป้องกัน CSRF
สรุป
SvelteKit จะบล็อกคำขอ POST จากต้นทางอื่นโดยค่าเริ่มต้น ควรใช้ร่วมกับคุกกี้แบบ SameSite และอย่าปิดการป้องกันโดยไม่ไตร่ตรอง
คำถามที่พบบ่อย
บทเรียน “การป้องกัน CSRF ในแอ็กชันแบบฟอร์ม” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การป้องกัน CSRF ในแอ็กชันแบบฟอร์ม” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Sveltejs Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Sveltejs Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การป้องกัน CSRF ในแอ็กชันแบบฟอร์ม”
ทำความเข้าใจว่า SvelteKit ป้องกันการปลอมแปลงคำขอข้ามไซต์ในแอ็กชันแบบฟอร์มอย่างไร คุณปฏิบัติ Sveltejs Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Sveltejs Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Sveltejs Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การป้องกัน CSRF ในแอ็กชันแบบฟอร์ม” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Sveltejs Academy นี้ได้ไหม
ได้ บทเรียน Sveltejs Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การป้องกัน CSRF ในแอ็กชันแบบฟอร์ม
- การป้องกัน XSS ใน {#html}
- ตัวแปรสภาพแวดล้อม: $env/static และ $env/dynamic
- การจำกัดอัตราด้วย Hooks