การรับรองความถูกต้องพื้นฐาน HTTP ผ่านใน URL และการเข้ารหัส


250

ฉันมีคำถามเกี่ยวกับข้อมูลรับรอง HTTPS และ HTTP การตรวจสอบสิทธิ์

สมมติว่าฉันรักษาความปลอดภัย URL ด้วยการตรวจสอบ HTTP:

<Directory /var/www/webcallback>
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /var/www/passwd/passwords
Require user gooduser
</Directory>

ฉันเข้าถึง URL นั้นจากระบบระยะไกลผ่าน HTTPS ผ่านการรับรองใน URL:

https://gooduser:secretpassword@www.example.com/webcallback?foo=bar

ชื่อผู้ใช้และรหัสผ่านจะถูกเข้ารหัส SSL โดยอัตโนมัติหรือไม่ เหมือนกันกับ GET และ POST หรือไม่ ฉันมีปัญหาในการค้นหาแหล่งข้อมูลที่น่าเชื่อถือด้วยข้อมูลนี้



คำถามที่เก่ามาก แต่อย่างไรก็ตาม: วิธีนี้เลิกใช้แล้วโดยietf.org/rfc/rfc3986.txt : "การใช้รูปแบบ" ผู้ใช้: รหัสผ่าน "ในช่อง userinfo นั้นเลิกใช้แล้ว
Madbreaks

คำตอบ:


237

ชื่อผู้ใช้และรหัสผ่านจะถูกเข้ารหัส SSL โดยอัตโนมัติหรือไม่ เหมือนกันกับ GET และ POST

ใช่ใช่ใช่.

การสื่อสารทั้งหมด (บันทึกสำหรับการค้นหา DNS หาก IP สำหรับชื่อโฮสต์ยังไม่ได้แคชไว้) จะถูกเข้ารหัสเมื่อใช้ SSL


25
+1 GETs และ POST รวมถึง url นั้นได้รับการเข้ารหัส ฉันจะเพิ่มเท่านั้น - เครื่องมือเช่นข้อมูล firebug และ Tamper สามารถแสดงผลลัพธ์ที่ไม่เข้ารหัสเท่านั้นเนื่องจากเป็นส่วนหนึ่งของเบราว์เซอร์และด้วยเหตุนี้จึงสามารถดักจับการร้องขอก่อนที่จะถูกเข้ารหัส เมื่อส่งผ่านสายทุกอย่างจะถูกเข้ารหัส
Sripathi Krishnan

21
เพื่อให้ชัดเจนทุกอย่างยกเว้นโดเมนจะถูกเข้ารหัส ถ้าใครสะดุดข้ามนี้และต้องการคำตอบรายละเอียดเพิ่มเติมโปรดดูที่answers.google.com/answers/threadview/id/758002.html
rcourtna

7
เพื่อความสมบูรณ์ " Internet Explorer ไม่สนับสนุนชื่อผู้ใช้และรหัสผ่านในที่อยู่เว็บไซต์ (HTTP หรือ HTTPS URL) " ดูเหมือนว่าเฉพาะ Internet Explorer เวอร์ชัน 3.0 ถึง 6.0 รองรับไวยากรณ์ต่อไปนี้สำหรับ HTTP หรือ HTTPS URL: http (s): //username:password@server/resource.ext หมายเหตุ: การเปลี่ยนแปลงนี้ในการทำงานเริ่มต้นจะไม่ส่งผลกระทบต่อโปรโตคอลอื่น ๆ ตัวอย่างเช่นคุณยังสามารถรวมข้อมูลผู้ใช้ใน FTP URL หลังจากที่คุณติดตั้งการปรับปรุงความปลอดภัย 832894
ลุค

คำตอบนี้ไม่มีแหล่งที่น่าเชื่อถือหรือคำอธิบายเพิ่มเติม
Jens Piegsa

26

ใช่มันจะถูกเข้ารหัส

คุณจะเข้าใจถ้าคุณเพียงแค่ตรวจสอบสิ่งที่เกิดขึ้นเบื้องหลัง

  1. เบราว์เซอร์หรือแอปพลิเคชันจะแบ่ง URL เป็นอันดับแรกและพยายามรับ IP ของโฮสต์โดยใช้ DNS Query ie: คำขอ DNS จะถูกสร้างขึ้นเพื่อค้นหาที่อยู่ IP ของโดเมน (www.example.com) โปรดทราบว่าจะไม่มีการส่งข้อมูลอื่นผ่านคำขอนี้
  2. เบราว์เซอร์หรือแอปพลิเคชันจะเริ่มต้นการเชื่อมต่อ SSL กับที่อยู่ IP ที่ได้รับจากคำขอ DNS ใบรับรองจะถูกแลกเปลี่ยนและสิ่งนี้เกิดขึ้นที่ระดับการขนส่ง จะไม่มีการถ่ายโอนข้อมูลระดับแอปพลิเคชันในตอนนี้ โปรดจำไว้ว่าการรับรองความถูกต้องเบื้องต้นเป็นส่วนหนึ่งของ HTTP และ HTTP เป็นโปรโตคอลระดับแอปพลิเคชัน ไม่ใช่งานเลเยอร์การขนส่ง
  3. หลังจากสร้างการเชื่อมต่อ SSL ตอนนี้ข้อมูลที่จำเป็นจะถูกส่งไปยังเซิร์ฟเวอร์ เช่น: พา ธ หรือ URL พารามิเตอร์และชื่อผู้ใช้และรหัสผ่านการรับรองความถูกต้องเบื้องต้น

-5

ไม่จำเป็นต้องเป็นเรื่องจริง มันจะถูกเข้ารหัสบนสายอย่างไรก็ตามมันยังคงที่ดินในข้อความธรรมดาบันทึก


17
เว็บเซิร์ฟเวอร์ใดบันทึกชื่อผู้ใช้และรหัสผ่านจากคำขอ นั่นจะเป็นหนึ่งในเว็บเซิร์ฟเวอร์ที่ไม่ปลอดภัย
Andrew Barber

1
ใช่นี่ไม่เป็นความจริง อาจเป็นไปได้ที่จะสั่งให้ apache บันทึกข้อมูลนี้ แต่โดยค่าเริ่มต้นจะไม่ทำเช่นนั้น
DougW

27
@Brandon อาจคิดว่า "ใน URL" หมายถึงในสตริงการสืบค้น (เช่น? user = bob & pw = 123hackmeplz) นั่นอาจลงเอยในล็อกเซิร์ฟเวอร์
Mike Graf

5
ที่เกี่ยวข้อง: "เมื่อคุณเรียก URL นั้นบนไคลเอนต์ด้วยเช่น curl ชื่อผู้ใช้และรหัสผ่านจะปรากฏอย่างชัดเจนในรายการกระบวนการและอาจปรากฏในไฟล์ประวัติทุบตี" - stackoverflow.com/a/4981309
Hawkeye Parker

1
@ zb226 ผู้ถามได้กล่าวถึงเฉพาะการใส่ข้อมูลประจำตัวใน URL
Lambart
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.