การส่งคำขอ HTTP ด้วยการตรวจสอบสิทธิ์พื้นฐาน

Bash:
การส่งคำขอ HTTP ด้วยการตรวจสอบสิทธิ์พื้นฐาน

วิธีการ:

มาลงมือทำกับโค้ดบ้าง วิธีนี้จะใช้ curl เครื่องมือบรรทัดคำสั่งที่พบบ่อย ให้แทนที่ username:password ด้วยข้อมูลประจำตัวของคุณ และ http://example.com/resource ด้วย URL เป้าหมายของคุณ

curl -u username:password http://example.com/resource

หรือนำข้อมูลประจำตัวไปเข้ารหัสใน base64 ล่วงหน้าแล้วใช้งานดังนี้:

# เข้ารหัสข้อมูลประจำตัว
credentials=$(echo -n username:password | base64)

# ส่งคำขอ
curl -H "Authorization: Basic $credentials" http://example.com/resource

ตัวอย่างผลลัพธ์สำหรับคำขอที่สำเร็จอาจจะดูเหมือนนี้:

{
  "data": "ข้อมูลที่ถูกจำกัด",
  "message": "อนุญาตให้เข้าถึง"
}

ลงลึกมากขึ้น

โดยประวัติศาสตร์แล้ว การพิสูจน์ตัวตนแบบพื้นฐานได้เป็นส่วนหนึ่งของ HTTP ตั้งแต่วันแรกๆ แต่ไม่ได้หมายความว่าจะไม่มีข้อบกพร่อง - ประการสำคัญคือความเปราะบางถ้าไม่ได้ใช้ผ่านช่องทางที่ปลอดภัย เช่น HTTPS

ตัวเลือกอื่น ๆ ได้แก่ OAuth ซึ่งปลอดภัยกว่าและให้การควบคุมที่ละเอียดกว่าเกี่ยวกับสิ่งที่ถูกเข้าถึง Digest authentication อีกตัวเลือกหนึ่ง ซึ่งส่งข้อมูลประจำตัวที่ถูกแฮชแทนที่จะเป็นข้อความธรรมดา

สำหรับกลไก ตอนคุณส่งข้อมูลประจำตัวแบบ basic auth พวกมันจะถูกรวมไว้ในหัวข้อ HTTP โดยถูกเข้ารหัสใน Base64 ไม่ใช่การเข้ารหัส ดังนั้นหากคุณไม่ได้ใช้ HTTPS ใครก็ตามที่ดักฟังคำขอสามารถถอดรหัสได้อย่างง่ายดาย การใช้ HTTPS ช่วยปลอดภัยต่อการส่งข้อมูล โดยเข้ารหัสทุกอย่างระหว่างไคลเอ็นต์และเซิร์ฟเวอร์

ดูเพิ่มเติม