การส่งโทเค็นการเข้าถึงผ่านทางส่วนหัว HTTP มีความปลอดภัยหรือไม่


11

นี่เป็นบริการเว็บสงบเป็นครั้งแรกและฉันกังวลเกี่ยวกับปัญหาด้านความปลอดภัย การส่งโทเค็นการเข้าถึงของฉันผ่านส่วนหัว HTTP ปลอดภัยหรือไม่ ตัวอย่างเช่น:

POST /v1/i/resource HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Api-key: 5cac3297f0d9f46e1gh3k83881ba0980215cd71e
Access_token: 080ab6bd49b138594ac9647dc929122adfb983c8

parameter1=foo&parameter2=bar

SSLการเชื่อมต่อทำมากกว่า นอกจากนี้สิ่งที่จะต้องมีการกำหนดเป็นscopeคุณลักษณะสำหรับทุกคนaccess token

คำตอบ:


12

ถ้าคุณต้องส่งการเข้าถึงโทเค็นส่วนหัวผ่าน HTTP มันจะมีความเสี่ยงต่อการโจมตีแบบกลางคน

เมื่อคุณส่งส่วนหัวโทเค็นการเข้าถึงผ่าน HTTPS จะไม่มีใครนอกจากไคลเอ็นต์จะสามารถเห็นโทเค็นนี้ได้เนื่องจากคำขอจะได้รับการติดตามผ่านการเชื่อมต่อที่ปลอดภัย


4
ไคลเอ็นต์เลอะเทอะอาจเสี่ยงต่อการโจมตีของ MITM แม้ใช้ SSL
ott--

คุณช่วยยกตัวอย่างได้ไหม
CodeART

คุณไม่สามารถรับประกันความปลอดภัยของฝั่งไคลเอ็นต์ได้หากคุณไม่ได้ควบคุมลูกค้า แต่นั่นเป็นเรื่องจริง
แมตต์

2
@CodeWorks เบราว์เซอร์ส่วนใหญ่จะให้โอกาสผู้ใช้ในการเชื่อมต่อกับทรัพยากร HTTPS แม้ว่าใบรับรอง SSL ผิดสำหรับทรัพยากร นี่คือหนึ่งในสิ่งที่ผู้เขียนเบราว์เซอร์ที่เคยทำมาและเป็นข้อเสนอที่ยอมรับการโจมตีของ MITM
Ross Patterson

1
@Dan แล้วควรเพิ่มใบรับรอง MITM เฉพาะในรายการใบรับรองหลักของลูกค้า มิฉะนั้นคุณจะลดคำเตือน HTTPS เป็น "cry wolf" ที่แท้จริงซึ่งทั้ง A) ฝึกให้ผู้ใช้ของคุณเพิกเฉยตลอดไป B) นั้นยาก (เป็นไปไม่ได้เพราะ A) ที่จะบอกนอกเหนือจากการโจมตี MITM ที่เป็นอันตรายและเป็นอันตราย
Nick T

8

ไม่มีปัญหาร้ายแรงในการถ่ายโอนโทเค็นการเข้าถึงผ่านส่วนหัว http เนื่องจากข้อมูลที่ถ่ายโอนถูกเข้ารหัสเมื่อใช้ SSL หมายความว่าสามารถเข้าใจได้เฉพาะลูกค้าที่ทำคำขอและเซิร์ฟเวอร์ที่ตอบสนองคำขอในระหว่างที่ไม่มีโอกาสที่จะ เข้าใจข้อมูลโดยบุคคลที่สาม

สิ่งอื่น ๆaccess tokenนั้นขึ้นอยู่กับเวลาดังนั้นพวกเขาจึงมีชีวิตตามช่วงเวลาที่กำหนดดังนั้นพวกเขาจึงไม่มีโอกาสใช้ในอนาคต


-1

สิ่งที่ควรพิจารณาคือการแคช

แบ็กเอนด์ของคุณสามารถเห็นการเรียกหลาย ๆ ครั้งไปยัง URL เดียวกันด้วยพารามิเตอร์ GET / POST เดียวกัน แต่โทเค็นการเข้าถึงส่วนหัวที่แตกต่างกันและพิจารณาว่าเนื้อหาสามารถถูกแคชและรวมถึงเนื้อหาใด ๆ

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