การตรวจสอบสิทธิ์และความปลอดภัย

Author profile photo
ทีม Quickex
1 กันยายน 2568
~1 นาทีในการอ่าน

การตรวจสอบสิทธิ์และความปลอดภัย

API v2: คีย์, รายการ IP ที่อนุญาต, HMAC

โมเดลการเข้าถึง. คำขอทั้งหมดไปยัง API v2 ทำงานโดยใช้คู่คีย์
publicKey/secretKey.
คีย์ถูกสร้างขึ้นในบัญชีผู้ใช้หรือผ่าน v1 (/api/v1/users/generate-api-key).

การจำกัดตาม IP. เมื่อสร้างคีย์ ให้ระบุที่อยู่ IP ที่เชื่อถือได้ใน
whiteListIp.
คำขอจากภายนอกรายการนี้จะถูกปฏิเสธ

การลงนามคำขอแต่ละครั้ง. ส่วนหัว (headers) ต้องประกอบด้วย:

X-Api-Public-Key — publicKey ของคุณ
X-Api-Timestamp — สตริงเวลา (เช่น มิลลิวินาที epoch)
X-Api-Signature — ลายเซ็น HMAC-SHA256 ใน Base64

สูตรการลงนาม

StrToSign = timestamp + body + publicKey
Signature = Base64( HMAC_SHA256(StrToSign, secretKey) )

body ต้องเป็น JSON แบบกะทัดรัด (ไม่มีช่องว่างเกิน)

ตัวอย่าง (curl)

curl -X POST "https://quickex.io/api/v2/instruments/public/validate-address" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Api-Public-Key: {PUBLIC_KEY}" \
  -H "X-Api-Timestamp: {TIMESTAMP_MS}" \
  -H "X-Api-Signature: {HMAC_BASE64}" \
  -d '{"currencyTitle":"USDT","networkTitle":"TRC20","address":"..."}'

API v1: JWT/เซสชัน

สองวิธีในการเข้าถึง. สามารถตรวจสอบด้วยตนเองผ่านทีมสนับสนุน — ขอการเข้าถาวร (ส่งโปรเจกต์ ปริมาณ การ whitelist IP, รหัสพาร์ทเนอร์)

JWT การตรวจสอบสิทธิ์. รับโทเค็นผ่าน
POST /api/v1/users/local/authenticate (ฟิลด์:
email, password, browserFingerprint).
เซิร์ฟเวอร์ตอบกลับด้วยคุกกี้:
session_id, access_token, refresh_token.

ตัวอย่างคำขอ (JSON body)

{
  "email": "user@example.com",
  "password": "yourpassword",
  "browserFingerprint": "unique-browser-id"
}

โทเค็น/คุกกี้ถูกใช้ในการเรียกเมธอดที่ป้องกันใน v1 และสำหรับการสร้าง API key v2 ผ่าน
/api/v1/users/generate-api-key.

คำแนะนำสำหรับการจัดเก็บคีย์และโทเค็น

อย่าเก็บไว้ในโค้ด/รีโพ. ใช้ environment variables หรือ secret managers (Vault, AWS Secrets Manager, GCP Secret Manager เป็นต้น)

แยกสภาพแวดล้อม. ใช้คีย์แยกสำหรับ dev/stage/prod. สำหรับ dev — จำกัด
whiteListIp และสิทธิ์

ลดพื้นที่โจมตี. ส่งคำขอ v2 จาก backend เท่านั้น ห้ามสร้างคีย์หรือ HMAC บน frontend

หมุนเวียนคีย์เป็นประจำ. ออกคีย์ใหม่เป็นระยะ ลบคีย์ที่ไม่ได้ใช้
(/api/v1/users/list-api-key, /api/v1/users/delete-api-key)

บันทึกโดยไม่เก็บความลับ. ห้ามบันทึก
secretKey, โทเค็น หรือ headers การตรวจสอบสิทธิ์เต็มรูปแบบ; ให้บันทึกเฉพาะแฮช/ID และ response codes

ใช้ TLS ทุกที่. ใช้เฉพาะ
https. ปฏิเสธการ redirect ไปยังโปรโตคอลที่ไม่ปลอดภัย

คุกกี้ที่ปลอดภัย. สำหรับ v1 ใช้ flags
HttpOnly, Secure; เก็บโทเค็นไว้เฉพาะใน session ที่ปลอดภัย

การจัดการข้อผิดพลาดและ retry. หาก 429/5xx — ใช้ backoff แบบทวีคูณ ตรวจสอบ body และความถูกต้องของพารามิเตอร์ที่จำเป็น

หลักการสิทธิ์น้อยที่สุด. มอบคีย์และโทเค็นให้บริการเฉพาะเมื่อจำเป็น หลีกเลี่ยงการแชร์โดยไม่จำเป็น

แชร์บทความนี้: