Soru URL parametrelerinde HTTP Temel Kimlik Doğrulaması için kullanıcı / geçişi geçirebilir misiniz?


Bunun mümkün olmadığına inanıyorum ama bildiğim biri çalışmasında ısrar etti. Hangi parametrelerin deneneceğini bile bilmiyorum ve bunu hiçbir yerde belgelemedim.

denedim http://myserver.com/~user=username&password=mypassword ama işe yaramıyor.

Aslında kullanıcı / pass HTTP parametreleri (GET veya POST) üzerinden geçmek mümkün değil mi?


124
2018-03-21 11:16


Menşei


kullanıcı: pass@example.com - Smudge
@sam - ne? Tam URL nasıl görünür? - ripper234
Tüm spec ietf.org/rfc/rfc1738.txt (3.1) - Smudge
@sam - Üzgünüz, yorumunuzu bazı sebeplerle ayrıştıramadım. - ripper234


Cevaplar:


Standart HTTP yetkisinde sorgulama parametreleri aracılığıyla kullanıcı adı ve şifreyi geçmeniz mümkün değildir. Bunun yerine, bunun gibi özel bir URL biçimi kullanırsınız: http://username:password@example.com/ - Bu, standart HTTP "Yetkilendirme" başlığındaki kimlik bilgilerini gönderir.

Konuştuğunuz kişi, sorgu parametrelerine bakan ve kimlik bilgilerini doğrulayan bir özel modül veya kod düşünmekti. Bu standart HTTP yetkisi değil, yine de uygulamaya özel bir şey.


167
2018-03-21 11:38



Teşekkürler, bu sadece aradığım şey ... URL'sini yapabilmem için sadece GET parametrelerinin olması kritik değil. - ripper234
FYI, http://username:password@example.com format artık desteklenmiyor IE veya KromEğer daha önce yapmadılarsa, diğerleri bunu takip ederse şaşırmazdım. - T.J. Crowder
Aslında Chrome'da iyi çalışıyor. Sadece IE şımarık velet oluyor. - Damien Overeem ツ
@DamienOvereem hangi krom versiyonundasınız? Mac OS 37'de çalışıyorum ve benim için çalışmıyor gibi görünüyor. - Chris DaMour
Daha önce Chrome'un bir süredir devre dışı bırakıldığını öğrendim, ancak bu özelliği daha sonra yeniden etkinleştirdim. Ayrıca, Safari'nin bu tür bağlantılara çalışırken phishing hatalarını atacağını öğrendim. Temel olarak URL tabanlı http kimlik doğrulaması zamanı bitti .. - Damien Overeem ツ


http: // kullanıcı adı: password@example.com FireFox, Chrome, Safari için değil, IE için çalışacaktır.

Microsoft Bilgi Bankası


16
2018-01-23 10:50



Bu özellik, Chrome 19'dan kaldırıldı. Görmek code.google.com/p/chromium/issues/detail?id=123150 - Moshe Katz
Bu hata raporunu okuduğumda, Chrome 20'ye tekrar eklendi. Kesinlikle olmasaydı şikayette bulunmaya devam etmeyi çok isterdim. - womble♦
Şimdi Internet Explorer için istedim: connect.microsoft.com/IE/feedback/details/873575/.... Biraz farklı kullanım durumu, ancak aynı sorunu ele alıyor;) - SimonSimCity
@Diago şifre '@' içeriyorsa, o zaman işe yaramıyor. ölümcül hata veriyor, herkes bana nasıl bir defada kullanıcı adı ve şifre verebileceğini söyleyebilir mi? - Ashish Jain
@AshishJain - kaçmayı denerdim @ şifre olarak %40. (Bunun işe yarayıp yaramadığını bilmiyorum ve sunucuya ya da tarayıcıya / sunucuya bağlı olabilir.) - David Moles


URL'de temel kimlik doğrulama parametrelerini geçme önerilmez

Bu amaç için bir Yetkilendirme başlık alanı var. Buradan kontrol edin: http başlık listesi

Nasıl kullanılır, burada yazılır: Temel erişim kimlik doğrulaması

Ayrıca, bazı tarayıcılar tarafından hala desteklense de, temel yetkilendirme kimlik bilgilerinin URL'ye eklenmesinin önerilen çözümünün önerilmediğini de okuyabilirsiniz.

Ayrıca okuyun RFC 2617'de Bölüm 4.1 - HTTP Kimlik Doğrulaması Temel Kimlik Doğrulamanın neden kullanılmaması gerektiği hakkında daha fazla bilgi için.


Sorgu dizesinde kimlik doğrulama parametrelerinin geçirilmesi

OAuth veya diğer kimlik doğrulama hizmetlerini kullanırken, erişim belirtecinizi genellikle bir yetkilendirme başlığında değil de bir sorgu dizesinde gönderebilirsiniz.

GET https://www.example.com/api/v1/users/1?access_token=1234567890abcdefghijklmnopqrstuvwxyzABCD

14
2017-09-24 07:55



Ve bir Yetkilendirme üstbilgisini bir URL'ye kodlama hakkında nasıl bir şey olur? - womble♦
Belirttiğiniz form şimdi kullanımdan kaldırıldı değil mi? - womble♦
"Bu amaç için bir Yetkilendirme başlık alanı var" ile yanıtladığınız soru, kimlik doğrulama parametrelerinin nasıl yazılacağını soruyordu URL’ye. HTTP başlık alanlarını bir URL'ye (sizin yapamayacağınız) kodlayamazsanız, cevabınız dizisizdir. - womble♦
URI standardında nerede URI'deki temel kimlik doğrulama parametrelerinin geçilmesinin uygun olmadığını söylediğinizi söyleyebilir misiniz? RFC 2396 sadece "TAVSİYE EDİLMEDİ" diyor, çünkü düz metinde kimlik doğrulama ayrıntıları, pek çok durumda iyi bir fikir değil (ki buna katılıyorum), RFC 7235 hiçbir şeyden bahsetmiyor. Arama yapabildiğim özelliklerin hiçbir yerinde, kullanımdan kaldırıldığını söylüyor. - Lie Ryan
@Wilt: Özür dilemeliyim, gerçekten doğru. Spesifikasyonun “değiştirilmiş” olduğuna dair ipucunuz, beni daha fazla araştırmaya teşvik etti (bir RFC, yayınlandıktan / numaralandırıldıktan sonra asla değiştirilmez). Az önce RFC 2396'nın yerini aldığını gördüm. RFC 3986Daha önce bulamadım. RFC 3986, kullanıcı adının kullanımdan kaldırılmasından söz ediyor: şifre sözdizimi: Use of the format "user:password" in the userinfo field is deprecated. - Lie Ryan


GET parametrelerinde herhangi bir dizgi göndermek mümkün olsa da, özellikle AJAX isteğinde değilse, yüksek oranda görünür hale getirilebildiği için giriş ve şifre göndermeniz tavsiye edilmez.

Bununla birlikte, daha sonra, giriş ve şifreyi ayıklamak için sunucu sayfasını kodlamanız gerekir ve daha sonra bunları istediğiniz şekilde doğrulayın ve kullanın.


0
2017-09-11 08:22