เครื่องมือทดสอบ CORS
ทดสอบและดีบักนโยบาย CORS (Cross-Origin Resource Sharing) และคำขอ API
การตั้งค่าคำขอ
กำหนดค่าคำขอ API ของคุณสำหรับการทดสอบ
ตัวอย่างคำขอ
ลองใช้คำขอ API ที่กำหนดไว้ล่วงหน้าเหล่านี้
ข้อมูล CORS
ข้อมูลพื้นฐานเกี่ยวกับ CORS
CORS คืออะไร? CORS (Cross-Origin Resource Sharing) เป็นกลไกที่อนุญาตให้เว็บเบราว์เซอร์สร้างคำขอข้ามต้นทาง (โดเมน, โปรโตคอล หรือพอร์ตที่แตกต่างกัน) จากสคริปต์ที่ทำงานในเบราว์เซอร์
ส่วนหัว CORS ที่สำคัญ
Access-Control-Allow-Origin: ระบุว่าต้นทางใดได้รับอนุญาตให้เข้าถึงทรัพยากรAccess-Control-Allow-Methods: ระบุว่าวิธีการ HTTP ใดได้รับอนุญาตAccess-Control-Allow-Headers: ระบุว่าส่วนหัว HTTP ใดสามารถใช้ได้Access-Control-Allow-Credentials: ระบุว่าจะรวมข้อมูลรับรอง (คุกกี้, การรับรองความถูกต้อง HTTP) หรือไม่
💡 โซลูชัน CORS
โซลูชันฝั่งเซิร์ฟเวอร์
1. Express.js (Node.js):
const cors = require('cors');
app.use(cors({
origin: 'https://example.com',
methods: ['GET', 'POST'],
credentials: true
}));2. Spring Boot (Java):
@CrossOrigin(origins = "https://example.com")
@RestController
public class ApiController { ... }โซลูชันฝั่งไคลเอ็นต์
1. การใช้พร็อกซีเซิร์ฟเวอร์:
// package.json (React)
"proxy": "http://localhost:3001"2. JSONP (เฉพาะ GET):
// โซลูชันที่จำกัดแต่เรียบง่าย
fetch('api?callback=handleResponse')🔧 การกำหนดค่า CORS ตามสภาพแวดล้อม
Next.js
// next.config.js
module.exports = {
async headers() {
return [
{
source: '/api/:path*',
headers: [
{
key: 'Access-Control-Allow-Origin',
value: '*'
}
]
}
]
}
}Nginx
location /api {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods
"GET, POST, OPTIONS";
add_header Access-Control-Allow-Headers
"Content-Type, Authorization";
}Apache
# .htaccess
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods
"GET, POST, OPTIONS"
Header always set Access-Control-Allow-Headers
"Content-Type, Authorization"การกำหนดค่า CORS ตามสภาพแวดล้อม
สถานการณ์การทดสอบ
- • คำขอแบบง่าย: ทดสอบพฤติกรรม CORS พื้นฐานด้วยคำขอ GET
- • คำขอ Preflight: ทดสอบคำขอ preflight ด้วยวิธีการ PUT/DELETE
- • ส่วนหัวแบบกำหนดเอง: ทดสอบคำขอด้วยส่วนหัว Authorization
- • ข้อมูลรับรอง: ทดสอบคำขอด้วยคุกกี้
- • การจัดการข้อผิดพลาด: ทดสอบสถานการณ์ความล้มเหลว
ข้อควรพิจารณาด้านความปลอดภัย
- • ระมัดระวังการใช้ wildcard (*) เนื่องจากความเสี่ยงด้านความปลอดภัย
- • หลักการสิทธิ์ขั้นต่ำ: อนุญาตเฉพาะต้นทางและวิธีการที่จำเป็นเท่านั้น
- • ข้อจำกัดข้อมูลรับรอง: อนุญาตเฉพาะต้นทางที่ระบุเมื่อรวมข้อมูลรับรอง
- • การตรวจสอบปกติ: ตรวจสอบและอัปเดตนโยบาย CORS เป็นระยะ
เคล็ดลับการดีบัก CORS
เครื่องมือสำหรับนักพัฒนาเบราว์เซอร์
- • ตรวจสอบคำขอ OPTIONS ในแท็บ Network
- • มองหาข้อความข้อผิดพลาด CORS ใน Console
- • ตรวจสอบส่วนหัว CORS ใน Response Headers
เครื่องมือที่มีประโยชน์
- • เครื่องมือทดสอบ CORS (เครื่องมือนี้)
- • Postman (สำหรับการทดสอบ API)
- • คำสั่ง curl (สำหรับการทดสอบเซิร์ฟเวอร์โดยตรง)