Чи безпечно передавати маркери доступу через заголовки HTTP?


11

Це перший веб-сервіс RESTful, і я стурбований питаннями безпеки. Чи безпечно передавати мій маркер доступу через заголовки 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-атаки.
Росс Паттерсон

1
@До цього конкретного сертифіката MITM слід додати до списку кореневих сертифікатів клієнтів. Інакше ви звели попередження HTTPS до буквального "вовчого крику" про те, що обидва A) навчають своїх користувачів назавжди ігнорувати це, B) важко (неможливо через A) сказати окрім реальної, зловмисної атаки MITM.
Нік Т

8

Немає серйозних проблем у передачі маркера доступу через заголовки http, оскільки передані дані шифруються, коли використовується SSL, значить, його можна зрозуміти лише конкретному клієнту, який зробив цей запит, і серверу, який відповів на запит, між якими немає шансів на розуміти дані будь-якої третьої сторони.

Інша річ - access tokenце час, що базується, тому вони мають життя протягом певного періоду, тому вони не мають шансів використовувати в майбутньому.


-1

Що також слід врахувати - кешування.

Ваш сервер може бачити декілька викликів до однієї URL-адреси з однаковими параметрами GET / POST, але інший маркер доступу до заголовка, а вміст може бути кешований та перенесений до будь-якого тіла.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.