Apakah aman untuk mengirim token akses melalui header HTTP?


11

Ini adalah layanan web RESTful pertama dan saya khawatir tentang masalah keamanan. Apakah aman untuk mengirimkan token akses saya melalui header HTTP? Sebagai contoh:

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

parameter1=foo&parameter2=bar

Koneksi dibuat SSL. Juga, Apa yang perlu didefinisikan sebagai scopeatribut untuk setiapaccess token

Jawaban:


12

Jika Anda mengirim header token akses melalui HTTP, maka itu akan rentan terhadap serangan tengah man-in-the.

Saat Anda mengirimkan tajuk akses token melalui HTTPS, maka tidak seorang pun selain klien akan dapat melihat token ini karena permintaan akan disetel melalui koneksi aman.


4
Klien yang ceroboh mungkin rentan terhadap serangan MITM bahkan dengan SSL.
ott--

Bisakah Anda memberikan contoh?
CodeART

Anda tidak dapat menjamin keamanan sisi klien jika Anda tidak mengontrol klien, tetapi itu benar tentang apa saja.
Matt

2
@CodeWorks Sebagian besar browser akan menawarkan kepada pengguna kesempatan untuk terhubung ke sumber daya HTTPS bahkan jika sertifikat SSL salah untuk sumber daya tersebut. Ini, bisa dibilang, salah satu hal paling bodoh yang pernah dilakukan oleh peramban, dan pada dasarnya menawarkan untuk menerima serangan MITM.
Ross Patterson

1
@Dan maka sertifikat MITM tertentu harus ditambahkan ke daftar sertifikat root klien. Kalau tidak, Anda telah mengurangi peringatan HTTPS menjadi "serigala menangis" literal yang baik A) melatih pengguna Anda untuk mengabaikannya selamanya, B) sulit (tidak mungkin karena A) untuk membedakan dari serangan MITM nyata, berbahaya.
Nick T

8

Tidak ada masalah serius dalam mentransfer token akses melalui header http karena data yang ditransfer dienkripsi saat SSL digunakan, berarti hanya dapat dipahami oleh klien tertentu yang membuat permintaan dan server yang merespons permintaan tersebut, di antaranya tidak ada peluang untuk memahami data oleh pihak ketiga mana pun.

Hal lain adalah access tokenberdasarkan waktu sehingga mereka memiliki kehidupan untuk periode tertentu sehingga mereka tidak memiliki peluang untuk digunakan di masa depan.


-1

Satu hal yang perlu dipertimbangkan juga adalah caching.

Backend Anda dapat melihat beberapa panggilan ke URL yang sama, dengan parameter GET / POST yang sama tetapi token akses tajuk yang berbeda dan menganggap konten dapat di-cache dan dilihat oleh semua orang.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.