Jakie są zalety korzystania z HTTP authentication with PHP (nagłówki HTTP 401) zamiast korzystania z normalnego uwierzytelniania formularza?zalety "Uwierzytelniania HTTP za pomocą PHP"
Odpowiedz
Z punktu widzenia bezpieczeństwa, zarówno forma oparta i HTTP Basic Access Authentication użycie zwykłego tekstu do wysyłania danych uwierzytelniających. (Oczywiście, HTTP Basic Auth dodatkowo używa Base64, ale to nie jest problem.)
Podczas gdy HTTP Basic Auth wysyła dane uwierzytelniające dla każdego żądania, uwierzytelnianie oparte na formularzach wysyła dane uwierzytelniające tylko wtedy, gdy formularz jest wysyłany (pamiętaj: oba w postaci zwykłego tekstu). Zwykle sesje są używane do utrzymywania stanu podczas korzystania z uwierzytelniania opartego na formularzu.
Jeśli chcesz skorzystać z jednego z nich, pamiętaj, aby zaszyfrować połączenie przy użyciu protokołu HTTPS, aby zapobiec podsłuchiwaniu i man-in-the-middle attacks. A gdy wybierzesz wersję opartą na formularzu i sesji, pamiętaj o zabezpieczeniu obsługi sesji, aby zapobiec lub przynajmniej wykryć oszustwa sesyjne, takie jak Session Hijacking i Session Fixation.
Ostatni wariant to HTTP Digest Access Authentication. Główną różnicą między tym a podstawowym jest to, że Digest to challenge-response authentication, podczas gdy klient musi spełnić żądanie na każde żądanie, a odpowiedź to tylko skrót MD5. Dlatego nie są wysyłane dane uwierzytelniające w postaci zwykłego tekstu.
Twoje pytanie jest trochę niejasne, ale ogólna odpowiedź brzmi, że użycie tej metody zapewnia bardziej "restycyjną" implementację, zgodną z tym, co jest już dobre w HTTP. W takim przypadku wyrzucenie 401 jest czymś, co wiedzą o tym inni serwery WWW, serwery WWW i przeglądarki internetowe. Jeśli tylko wypluwasz formularz HTML, jest on dostępny tylko dla użytkownika końcowego, podczas gdy używanie kodów stanu HTTP umożliwia interakcję z maszyną.
Polecam sprawdzenie, czy nie jest to serwer HTTP, który należy do domeny http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
. Myślę, że powinno to wszystko nadać sens.
Tworzysz strony internetowe? jeśli tak, to użyj znacznika w postaci > .. jest ładniejszy;)
Tworzysz aplikacje dostępne dla innych aplikacji i wysyłasz niektóre dane? Następnie użyj autoryzacji HTTP.
O ile mi wiadomo, nie ma dużej różnicy pod względem bezpieczeństwa, szybkości czy czegokolwiek ... jest to po prostu brzydkie i łatwiejsze do wdrożenia.
Jako przykład tego, co powiedziałem revolutiontrigger, najczęściej korzystam z uwierzytelniania HTTP w kanałach RSS dla stron korzystających z uwierzytelniania opartego na formularzach, po prostu dlatego, że wiele czytników RSS może wykonywać autoryzację HTTP, ale nie może wykonywać uwierzytelniania opartego na formularzach.
- 1. Pobieranie prywatnego pliku zip repozytorium BitBucket za pomocą uwierzytelniania http
- 2. Pamięć podręczna uwierzytelniania http
- 3. Jak złożyć wniosek za pomocą podstawowego uwierzytelniania HTTP z curl PHP?
- 4. Wydanie FORMULARZA POST Wniosek z PHP za pomocą podstawowego uwierzytelniania HTTP
- 5. Jak mogę uzyskać uwierzytelnioną nazwę użytkownika w Apache za pomocą zwykłego uwierzytelniania HTTP i PHP?
- 6. Logowanie sesji a uwierzytelnianie HTTP. Zalety Wady:
- 7. RCurl: Uwierzytelnianie HTTP, gdy witryna odpowiada za pomocą kodu HTTP 401 bez uwierzytelniania WWW.
- 8. Wysyłanie nagłówków HTTP za pomocą żądania HTTP WWW do uwierzytelniania NTLM
- 9. Personifikowanie przy użyciu uwierzytelniania za pomocą formularzy
- 10. Blokowanie dostępu za pośrednictwem uwierzytelniania HTTP za pomocą Zend Framework 2
- 11. zwraca określony kod stanu http za pomocą php
- 12. Sposób wysyłania poświadczeń uwierzytelniania HTTP za pomocą usługi WCF Numer referencyjny
- 13. Implementowanie podstawowego uwierzytelniania HTTP w serwlecie
- 14. LWP :: UserAgent podstawowego uwierzytelniania HTTP
- 15. określanie metod uwierzytelniania WWW http:
- 16. Uruchomienie uwierzytelniania LTI za pomocą Node.js
- 17. Użycie uwierzytelniania piramidy za pomocą piramidy
- 18. Przykład uwierzytelniania za pomocą AWS Cognito (boto3)
- 19. Używanie podstawowego uwierzytelniania http z wywołaniem Ajax
- 20. uwierzytelniania php poczta
- 21. Zalety i wady bibliotek klienta Clojure http:
- 22. Edycja plików zdalnych za pomocą Emacsa za pomocą uwierzytelniania za pomocą klucza publicznego
- 23. Porównanie łańcuchów PHP za pomocą '=='
- 24. Usunięcie podstawowego nagłówka uwierzytelniania za pomocą serwera proxy Apache
- 25. Zalety slf4j rejestratora Zalety formatowania za pomocą {} zamiast konkatenacji ciągów znaków
- 26. Oddzielanie serwerów uwierzytelniania i zasobów za pomocą AspNet.Security.OpenIdConnect - odbiorców?
- 27. Używanie uwierzytelniania HTTP Digest w telefonie iPhone
- 28. Reszta uwierzytelniania podstawowego za pomocą zabezpieczeń sprężynowych bez logowania się za pomocą formularza
- 29. Podłączanie do zdalnego adresu URL wymagającego uwierzytelniania za pomocą Java
- 30. Zabezpieczanie punktu końcowego usługi WCF za pomocą niestandardowego uwierzytelniania
Użycie uwierzytelniania opartego na sesjach (i formularzu), które jest przede wszystkim wygodniejsze. Możesz rzucić okiem na https://github.com/delight-im/PHP-Auth, który jest zarówno agnostyczny, jak i agnostyczny. – caw