URL parametrelerinde HTTP Temel Kimlik Doğrulama için kullanıcı / geçiş yapabilir misiniz?


153

Bunun mümkün olmadığına inanıyorum, ama tanıdığım biri işe yarıyor. Hangi parametrelerin deneneceğini bile bilmiyorum ve bunu hiçbir yerde belgeli olarak bulamadım.

Http://myserver.com/~user=username&password=mypassword Denedim ama işe yaramadı.

Aslında kullanıcıyı değiştirmenin / HTTP parametreleriyle geçmenin (GET veya POST) mümkün olmadığını doğrulayabilir misiniz?



@ sam - ne? URL'nin tamamı nasıl görünür?
ripper234

4
Teknik özelliklerin tümü ietf.org/rfc/rfc1738.txt (3.1)
Smudge

@ sam - Üzgünüm, yorumunuzu bir nedenden ötürü ayrıştıramadım.
ripper234

Yanıtlar:


199

Kullanıcı adını ve şifreyi standart HTTP auth'daki sorgu parametreleriyle iletmek gerçekten mümkün değil. Bunun yerine, bunun gibi özel bir URL formatı 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 bakarak ve kimlik bilgilerini doğrulayan özel bir modül veya kod düşünüyor olabilir. Bu standart bir HTTP auth değil, uygulamaya özel bir şey.


1
Teşekkürler, aradığım şey buydu ... GET parametrelerinin olması kritik değil, sadece URL'ye girebiliyorum.
ripper234

42
FYI, http://username:password@example.combiçim artık IE veya Chrome tarafından desteklenmiyor , diğerleri henüz uygulamamışlarsa da uygunsa, şaşırmazlar.
TJ Crowder

11
Aslında Chrome'da iyi çalışıyor. Sadece IE şımarık bir velet oluyor.
Damien Overeem ツ

1
@DamienOvereem hangi krom sürümünü kullanıyorsunuz? mac os x
37'deyim

11
Chrome'un bir süre için devre dışı bırakıldığını öğrendim ancak bu özelliği daha sonra yeniden etkinleştirdim. Ayrıca bağlantı türlerine içine çalıştırırken Safari bitti .. .. url tabanlı http kimlik doğrulama Temelde zaman kimlik avı hata verir öğrendim
Damien Overeemツ

18

URL’de Temel kimlik doğrulama parametrelerinin geçirilmesi önerilmez

Bu amaçla bir Yetkilendirme başlık alanı var burada kontrol edin: http başlık listesi

Nasıl kullanılır burada yazılır: Temel erişim doğrulama

Ayrıca, bazı tarayıcılar tarafından hala desteklense de, URL'ye Temel yetkilendirme kimlik bilgilerinin eklenmesi için önerilen çözüm önerilmemektedir.

Ayrıca Temel Kimlik Doğrulamayı neden kullanmama konusunda daha fazla ayrıntı için RFC 2617 - HTTP Kimlik Doğrulama bölümünde 4.1 bölümünü okuyun .


Kimlik doğrulama parametrelerinin sorgu dizesinde geçirilmesi

OAuth veya diğer kimlik doğrulama servislerini kullanırken, erişim belirtecinizi genellikle bir yetkilendirme başlığı yerine bir sorgu dizgisi içinde de gönderebilirsiniz.

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

Peki bir Yetkilendirme başlığını bir URL’ye kodlama nasıl devam eder?
womble

2
Belirttiğiniz form şimdi kullanımdan kaldırılmadı mı?
womble

2
"Bu amaçla bir Yetkilendirme başlığı alanı var" ile yanıtladığınız soru, kimlik doğrulama parametrelerini URL’ye nasıl gireceğinizi soruyordu . HTTP başlık alanlarını bir URL'ye kodlayamıyorsanız (ki yapamazsınız), cevabınız sıralayıcı değildir.
womble

URI standardında, URI'da temel kimlik doğrulama parametrelerinin geçilmesinin uygun olmadığını söylediğini söyleyebilir misiniz? RFC 2396, yalnızca "ÖNERİLMEMİŞ" olduğunu söyler çünkü düz metinlerdeki kimlik doğrulama detayları, çoğu durumda iyi bir fikir değildir (kabul ediyorum), RFC 7235 hiçbir şeyden bahsetmez. Teknik özelliklerin hiçbir yerinde arayamadığım, kullanımdan kaldırıldığını söylüyor.
Lie Ryan

1
@Wilt: Özür dilemek zorundayım, gerçekten haklısın. Spesifikasyonun "değiştirildiği" yönündeki ipucunuz daha fazla araştırma yapmam için beni kışkırttı (bir RFC yayınlandığında / numaralandırıldığında asla değiştirilmez). Daha önce RFC 2396'nın daha önce bulamadığım RFC 3986 tarafından değiştirildiğini gördüm. RFC 3986, kullanıcı adının kullanımdan kaldırıldığını belirtir: şifre sözdizimi:Use of the format "user:password" in the userinfo field is deprecated.
Lie Ryan

17

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

Microsoft Bilgi Bankası


2
Bu özellik Chrome 19+ ürününden kaldırıldı. Bkz code.google.com/p/chromium/issues/detail?id=123150
Moshe Katz

4
Bu hata raporunu okuduğumda, tekrar Chrome 20'ye eklendi. Kesinlikle, olmasaydı şikayetten bir sürü devam ettiğini görmeyi bekliyorum.
womble

Şimdi Internet Explorer için istedim: connect.microsoft.com/IE/feedback/details/873575/… . Biraz farklı kullanım durumları, ancak aynı konuyu ele alıyor;)
SimonSimCity

@Diago şifre '@' içeriyorsa, o zaman çalışmaz. ölümcül hata veriyor, herkes bana bir kerede kullanıcı adı ve şifreyi nasıl verebileceğimizi söyleyebilir mi
Ashish Jain

@AshishJain - Şifrede @olduğu gibi kaçmayı deneyeceğim %40. (Bununla birlikte çalışıp çalışmadığını bilmiyorum ve sunucuya veya tarayıcı / sunucu kombinasyonuna bağlı olabilir.)
David Moles

0

GET parametrelerinde herhangi bir dize göndermek (açıkçası) mümkündür, ancak özellikle bir AJAX isteğinde değilse, kullanıcı adınızı ve parolanızı oldukça görünür kılmak için tavsiye edilmez.

Bununla birlikte, kullanıcı adınızı ve şifrenizi çıkarmak için sunucu sayfasını kodlamanız ve ardından ne şekilde gerekirse onu doğrulamanız ve kullanmanız gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.