Wierzę, że to nie jest możliwe, ale ktoś, kogo znam, nalegał, aby to zadziałało. Nie wiem nawet, jakie parametry wypróbować i nigdzie nie znalazłem tego udokumentowanego.
Próbowałem http://myserver.com/~user=username&password=mypassword, ale to nie działa.
Czy możesz potwierdzić, że tak naprawdę nie można przekazać użytkownika / przekazać za pomocą parametrów HTTP (GET lub POST)?
authentication
http
http-basic-authentication
ripper234
źródło
źródło
Odpowiedzi:
W rzeczywistości nie jest możliwe przekazanie nazwy użytkownika i hasła za pomocą parametrów zapytania w standardowym uwierzytelnianiu HTTP. Zamiast tego używasz specjalnego formatu adresu URL, takiego jak ten:
http://username:[email protected]/
- wysyła poświadczenia w standardowym nagłówku HTTP „Autoryzacja”.Możliwe, że ktoś, z kim rozmawiałeś, myślał o niestandardowym module lub kodzie, który sprawdzał parametry zapytania i weryfikował poświadczenia. Nie jest to jednak standardowe uwierzytelnianie HTTP, jest to funkcja specyficzna dla aplikacji.
źródło
http://username:[email protected]
format ten nie jest już obsługiwany przez IE ani Chrome , nie zdziwiłby się, gdyby inni poszli w jego ślady, jeśli jeszcze tego nie zrobili.Przekazywanie podstawowych parametrów uwierzytelniania w adresie URL nie jest zalecane
W tym celu znajduje się pole nagłówka Autoryzacja. Sprawdź tutaj: lista nagłówków http
Jak go używać, jest napisany tutaj: Podstawowe uwierzytelnianie dostępu
Można tam również przeczytać, że chociaż jest ono obsługiwane przez niektóre przeglądarki, sugerowane rozwiązanie dodania poświadczeń autoryzacji podstawowej w adresie URL nie jest zalecane.
Przeczytaj także rozdział 4.1 w RFC 2617 - Uwierzytelnianie HTTP, aby uzyskać więcej informacji na temat tego, dlaczego NIE należy używać uwierzytelniania podstawowego.
Przekazywanie parametrów uwierzytelniania w ciągu zapytania
Korzystając z OAuth lub innych usług uwierzytelniania, często możesz również wysłać token dostępu w ciągu zapytania zamiast w nagłówku autoryzacji, więc coś takiego:
źródło
Use of the format "user:password" in the userinfo field is deprecated.
http: // nazwa użytkownika: hasł[email protected] będzie działać w FireFox, Chrome, Safari ALE nie w IE.
Baza wiedzy Microsoft
źródło
@
od hasła jako%40
. (Nie wiem jednak, czy to działa, i może zależeć od serwera lub kombinacji przeglądarka / serwer.)Możliwe jest (oczywiście) wysłanie dowolnego ciągu w parametrach GET, choć nie zaleca się wysyłania loginu i hasła, ponieważ może to być bardzo widoczne, szczególnie jeśli nie jest to żądanie AJAX.
Konieczne będzie jednak zakodowanie strony serwera, aby wyodrębnić login i hasło, a następnie zweryfikować je i używać w dowolny wymagany sposób.
źródło