Hai,
Saya telah menemukan server web tertanam di salah satu perangkat "IoT" saya, yang tidak mengautentikasi saat menggunakan modul "permintaan" di dalam iobroker.javascript.
Masalahnya adalah, permintaan itu mengirimkan bidang header Otorisasi dalam semua huruf kecil. Saya tidak tahu, apakah itu didefinisikan dalam RFC jika header harus peka huruf besar-kecil.
Apakah mungkin untuk mengubah file auth.js (dan mungkin juga yang lain) agar bidang Header dimulai dengan huruf besar dan dilanjutkan dengan huruf kecil sebagai
Otorisasi
Misalnya. Ada beberapa contoh lain untuk perilaku ini seperti header host dan sebagainya.
| perangkat lunak | Versi: kapan
| ---------------- | -------
| permintaan | 2.79.0
| simpul | 4.5.0
| npm | 3.10.8
| Sistem Operasi | Ubuntu 14.04.5 LTS dengan kernel 3.16.0-44-generic #59~14.04.1-Ubuntu
Salam hangat Uwe
Header HTTP per spesifikasi RFC tidak peka huruf besar-kecil. Anda harus mengatur header tersebut secara manual dengan opsi headers
.
Sedikit lebih banyak tentang ini, karena banyak muncul.
@simov benar, server Anda tidak sesuai spesifikasi. Spesifikasi HTTP memperjelas bahwa header harus peka huruf besar/kecil.
Dalam permintaan, kami default ke huruf kecil untuk header yang dihasilkan permintaan tetapi ketika Anda mengatur header secara manual, kami mempertahankan casing header tersebut sehingga Anda dapat menangani server yang tidak sesuai spesifikasi.
Anda harus membuat header auth sendiri dan menyetelnya dengan fitur headers
atau setHeader
jika Anda menginginkan casing tertentu. Tidak masuk akal jika permintaan untuk mengubah defaultnya untuk server yang tidak memenuhi spesifikasi karena tidak ada cara bagi kita untuk menang, akan selalu ada server yang tidak menyukai default tertentu dan tidak sesuai spesifikasi.
Dengan hormat saya pikir ini layak ditinjau kembali. Memang benar bahwa RFC menentukan header case-insensitive tetapi kenyataannya adalah bahwa mayoritas orang tidak menguji apa pun kecuali browser web umum. Penanganan kasus server http seringkali di luar kendali pengguna perpustakaan ini.
Sebagian besar browser menggunakan header berjudul, hal paling berguna yang dapat dilakukan perpustakaan ini adalah meniru string yang paling umum digunakan, misalnya Host:
not host:
, Cookie:
not cookie:
. Dengan cara ini, ini akan berfungsi di mana pun browser kita bekerja. Bergabung dengan kawanan akan membawa kompatibilitas yang lebih baik (benar atau salah) dan juga memiliki manfaat privasi.
Senang mengerjakan tambalan jika kemungkinan akan diterima, pikiran? Bisa jadi fitur ditandai untuk menjaga kompatibilitas bagi orang-orang yang lebih suka huruf kecil.
Komentar yang paling membantu
Dengan hormat saya pikir ini layak ditinjau kembali. Memang benar bahwa RFC menentukan header case-insensitive tetapi kenyataannya adalah bahwa mayoritas orang tidak menguji apa pun kecuali browser web umum. Penanganan kasus server http seringkali di luar kendali pengguna perpustakaan ini.
Sebagian besar browser menggunakan header berjudul, hal paling berguna yang dapat dilakukan perpustakaan ini adalah meniru string yang paling umum digunakan, misalnya
Host:
nothost:
,Cookie:
notcookie:
. Dengan cara ini, ini akan berfungsi di mana pun browser kita bekerja. Bergabung dengan kawanan akan membawa kompatibilitas yang lebih baik (benar atau salah) dan juga memiliki manfaat privasi.Senang mengerjakan tambalan jika kemungkinan akan diterima, pikiran? Bisa jadi fitur ditandai untuk menjaga kompatibilitas bagi orang-orang yang lebih suka huruf kecil.