PowerShell:
การส่งคำขอ HTTP ด้วยการตรวจสอบสิทธิ์พื้นฐาน
วิธีการ:
นี่คือวิธีที่คุณขอข้อมูลจากเซิร์ฟเวอร์อย่างสุภาพด้วยคำว่า ‘please’ ในรูปแบบของการตรวจสอบสิทธิ์พื้นฐาน:
# เตรียมข้อมูลประจำตัว
$user = 'YourUsername'
$pass = 'YourPassword'
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
# ตั้งค่าส่วนหัว
$headers = @{
Authorization = "Basic $encodedCreds"
}
# URL ที่คุณเคาะประตู
$url = 'https://api.example.com/data'
# ตอนนี้ เรามาทำตามขั้นตอนกัน
$response = Invoke-RestMethod -Uri $url -Method Get -Headers $headers
# แสดงผลลัพธ์
$response
ตัวอย่างผลลัพธ์อาจมีลักษณะดังนี้ เมื่อสมมติว่าการตอบสนองเป็นรูปแบบ JSON:
{
"name": "John Doe",
"email": "[email protected]"
}
ศึกษาลึก
การตรวจสอบสิทธิ์แบบพื้นฐานนั้นเก่าแก่ ย้อนกลับไปถึงยุคแรกๆ ของอินเทอร์เน็ต ที่ทุกคนรู้จักกันทุกคน แม้ว่าจะยังถูกใช้งานอยู่ แต่มันไม่ปลอดภัยมากเมื่ออยู่คนเดียว - มันเหมือนกับการส่งรหัสลับของคุณในโปสการ์ด ในปัจจุบัน เรามักจะส่งมันผ่าน HTTPS เพื่อเข้ารหัส ซึ่งเหมือนกับการใส่โปสการ์ดนั้นในกล่องที่ล็อกไว้
มีทางเลือกอื่นไหม? มากมาย คุณมีคีย์ API, OAuth, โทเค็นเบียร์… รายการทำไปเรื่อย แต่ละอย่างมาพร้อมกับการจับมือและคำลับของตัวเอง
ในแง่ของการดำเนินการด้วย PowerShell, คุณกำลังแปลงชื่อผู้ใช้และรหัสผ่านของคุณเป็นรูปแบบที่โปรโตคอล HTTP เข้าใจได้ - base64 แต่จำไว้ว่า base64 ไม่ใช่การเข้ารหัส; มันเพียงแค่เป็นข้อความที่เล่นกับการปลอมแปลง เว้นแต่ว่าจะถูกส่งผ่าน HTTPS มิฉะนั้น ใครก็ตามที่แอบดูสามารถเปิดเผยมันได้